From cd2b80e6c2796c47a93985e753c642e646c694c4 Mon Sep 17 00:00:00 2001 From: Sy Date: Wed, 22 Dec 2021 22:36:42 +0100 Subject: [PATCH] some cleanup --- .../CODING/nrLDPC_decoder/nrLDPC_decoder.c | 2 +- .../CODING/nrLDPC_decoder/nrLDPC_decoder.c111 | 1139 ---- .../CODING/nrLDPC_decoder/nrLDPC_decoder.save | 902 --- .../nrLDPC_decoder/nrLDPC_decoder.save2 | 1217 ---- ..._mPass.h2 => nrLDPC_mPass.h_native_memcpy} | 0 .../generator_bnProc/bnProcPc_gen_BG1_avx2.o | Bin 0 -> 70592 bytes .../generator_bnProc/bnProcPc_gen_BG2_avx2.o | Bin 0 -> 70592 bytes .../generator_bnProc/bnProc_gen_BG1_avx2.o | Bin 0 -> 37344 bytes .../generator_bnProc/bnProc_gen_BG2_avx2.o | Bin 0 -> 37784 bytes .../generator_bnProc/bnProc_gen_avx2 | Bin 110176 -> 120496 bytes .../nrLDPC_tools/generator_bnProc/main.o | Bin 0 -> 6184 bytes .../bnProc/nrLDPC_bnProc_BG2_R13_AVX2.c | 270 - .../bnProc/nrLDPC_bnProc_BG2_R15_AVX2.c | 483 -- .../bnProc/nrLDPC_bnProc_BG2_R23_AVX2.c | 101 - .../cnProc/nrLDPC_cnProc_BG1_R13_AVX2.c | 2346 ------- .../cnProc/nrLDPC_cnProc_BG1_R23_AVX2.c | 2097 ------- .../cnProc/nrLDPC_cnProc_BG1_R89_AVX2.c | 1177 ---- .../cnProc/nrLDPC_cnProc_BG2_R13_AVX2.c | 777 --- .../cnProc/nrLDPC_cnProc_BG2_R15_AVX2.c | 832 --- .../cnProc/nrLDPC_cnProc_BG2_R23_AVX2.c | 696 --- .../nrLDPC_decoder/save_best/nrLDPC_bnProc.h | 5533 ----------------- .../nrLDPC_decoder/save_best/nrLDPC_cnProc.h | 2444 -------- .../nrLDPC_decoder/save_best/nrLDPC_decoder.c | 541 -- .../nrLDPC-decoder2/nrLDPC_bnProc.h | 2830 --------- .../nrLDPC-decoder2/nrLDPC_cnProc.h | 2787 --------- .../nrLDPC-decoder2/nrLDPC_decoder.c | 745 --- .../nrLDPC-decoder2/nrLDPC_decoder.c2 | 534 -- .../nrLDPC-decoder2/nrLDPC_decoder.save | 902 --- .../nrLDPC-decoder2/nrLDPC_init.h | 1640 ----- .../nrLDPC-decoder2/nrLDPC_init_mem.h | 85 - .../nrLDPC-decoder2/nrLDPC_lut.h | 1004 --- .../nrLDPC-decoder2/nrLDPC_mPass.h | 1213 ---- .../nrLDPC-decoder2/nrLDPC_mPass.h2 | 1205 ---- .../nrLDPC_tools/generator_bnProc/Makefile | 27 - .../generator_bnProc/bnProcPc_gen_BG1_avx2.c | 1777 ------ .../generator_bnProc/bnProcPc_gen_BG2_avx2.c | 1773 ------ .../generator_bnProc/bnProc_gen_BG1_avx2.c | 1235 ---- .../generator_bnProc/bnProc_gen_BG1_avx2.c.1 | 1235 ---- .../generator_bnProc/bnProc_gen_BG2_avx2.c | 1232 ---- .../generator_bnProc/bnProc_gen_avx2 | Bin 617808 -> 0 bytes .../nrLDPC_tools/generator_bnProc/main.c | 28 - .../generator_bnProc/sauvegarde.tar.gz | Bin 9050 -> 0 bytes .../nrLDPC_tools/generator_cnProc/Makefile | 27 - .../generator_cnProc/cnProc_gen_BG1_avx2.c | 696 --- .../generator_cnProc/cnProc_gen_BG1_avx2.o | Bin 32672 -> 0 bytes .../generator_cnProc/cnProc_gen_BG2_avx2.c | 429 -- .../generator_cnProc/cnProc_gen_BG2_avx2.o | Bin 27264 -> 0 bytes .../generator_cnProc/cnProc_gen_avx2 | Bin 43424 -> 0 bytes .../nrLDPC_tools/generator_cnProc/main.c | 20 - .../nrLDPC_tools/generator_cnProc/main.o | Bin 3440 -> 0 bytes .../generator_cnProc/sauvegarde.tar.gz | Bin 4411 -> 0 bytes .../generator_cnProc_avx512/Makefile | 27 - .../cnProc_gen_BG1_avx512.c | 627 -- .../cnProc_gen_BG1_avx512.o | Bin 36144 -> 0 bytes .../cnProc_gen_BG1_avx512.save1 | 603 -- .../cnProc_gen_BG1_avx512.save2 | 578 -- .../cnProc_gen_BG2_avx512.c | 409 -- .../cnProc_gen_BG2_avx512.o | Bin 26776 -> 0 bytes .../generator_cnProc_avx512/cnProc_gen_avx512 | Bin 43464 -> 0 bytes .../generator_cnProc_avx512/main.c | 20 - .../generator_cnProc_avx512/main.o | Bin 3448 -> 0 bytes .../generator_cnProc_avx512/sauvegarde.tar.gz | Bin 4010 -> 0 bytes .../save/cnProc_gen_BG1_avx512.2 | 583 -- .../save/cnProc_gen_BG1_avx512.c | 557 -- .../save/cnProc_gen_BG1_avx512.c.today | 596 -- .../save/cnProc_gen_BG1_avx512.native | 596 -- .../save/cnProc_gen_BG1_avx512.unrolled | 590 -- .../bnProc/nrLDPC_bnProc_BG1_Z104_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z10_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z112_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z11_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z120_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z128_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z12_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z13_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z144_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z14_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z15_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z160_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z16_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z176_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z18_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z192_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z208_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z20_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z224_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z22_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z240_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z24_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z256_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z26_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z288_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z28_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z2_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z30_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z320_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z32_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z352_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z36_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z384_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z3_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z40_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z44_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z48_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z4_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z52_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z56_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z5_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z60_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z64_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z6_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z72_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z7_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z80_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z88_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z8_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z96_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z9_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG2_Z104_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z10_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z112_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z11_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z120_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z128_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z12_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z13_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z144_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z14_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z15_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z160_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z16_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z176_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z18_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z192_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z208_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z20_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z224_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z22_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z240_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z24_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z256_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z26_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z288_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z28_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z2_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z30_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z320_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z32_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z352_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z36_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z384_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z3_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z40_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z44_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z48_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z4_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z52_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z56_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z5_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z60_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z64_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z6_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z72_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z7_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z80_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z88_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z8_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z96_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z9_R15_AVX2.c | 992 --- .../nrLDPC_bnProcPc_BG1_Z104_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z10_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z112_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z11_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z120_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z128_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z12_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z13_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z144_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z14_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z15_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z160_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z16_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z176_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z18_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z192_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z208_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z20_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z224_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z22_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z240_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z24_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z256_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z26_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z288_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z28_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z2_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z30_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z320_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z32_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z352_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z36_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z384_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z3_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z40_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z44_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z48_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z4_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z52_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z56_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z5_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z60_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z64_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z6_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z72_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z7_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z80_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z88_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z8_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z96_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z9_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG2_Z104_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z10_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z112_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z11_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z120_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z128_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z12_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z13_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z144_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z14_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z15_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z160_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z16_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z176_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z18_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z192_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z208_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z20_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z224_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z22_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z240_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z24_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z256_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z26_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z288_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z28_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z2_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z30_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z320_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z32_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z352_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z36_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z384_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z3_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z40_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z44_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z48_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z4_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z52_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z56_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z5_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z60_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z64_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z6_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z72_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z7_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z80_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z88_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z8_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z96_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z9_R15_AVX2.c | 757 --- .../cnProc/nrLDPC_cnProc_BG1_R13_AVX2.c | 2346 ------- .../cnProc/nrLDPC_cnProc_BG1_R13_AVX2.h | 2346 ------- .../cnProc/nrLDPC_cnProc_BG1_R23_AVX2.c | 2097 ------- .../cnProc/nrLDPC_cnProc_BG1_R23_AVX2.h | 2097 ------- .../cnProc/nrLDPC_cnProc_BG1_R89_AVX2.c | 1177 ---- .../cnProc/nrLDPC_cnProc_BG1_R89_AVX2.h | 1177 ---- .../cnProc/nrLDPC_cnProc_BG2_R13_AVX2.c | 777 --- .../cnProc/nrLDPC_cnProc_BG2_R13_AVX2.h | 777 --- .../cnProc/nrLDPC_cnProc_BG2_R15_AVX2.c | 832 --- .../cnProc/nrLDPC_cnProc_BG2_R15_AVX2.h | 832 --- .../cnProc/nrLDPC_cnProc_BG2_R23_AVX2.c | 696 --- .../cnProc/nrLDPC_cnProc_BG2_R23_AVX2.h | 696 --- .../nrLDPC_cnProc_BG1_R13_AVX512.h | 2487 -------- .../nrLDPC_cnProc_BG1_R23_AVX512.h | 2202 ------- .../nrLDPC_cnProc_BG1_R89_AVX512.h | 1206 ---- .../nrLDPC_cnProc_BG2_R13_AVX512.h | 743 --- .../nrLDPC_cnProc_BG2_R15_AVX512.h | 792 --- .../nrLDPC_cnProc_BG2_R23_AVX512.h | 667 -- .../nrLDPC_tools/nrLDPC_debug.h | 182 - .../nrLDPC-decoder2/nrLDPC_types.h | 106 - .../nrLDPC-decoder2/nrLDPCdecoder_defs.h | 211 - .../save_best/complete/nrLDPC_bnProc.h.1 | 5533 ----------------- .../save_best/complete/nrLDPC_decoder.c | 541 -- .../nrLDPC-decoder2/save_best/nrLDPC_bnProc.h | 5533 ----------------- .../nrLDPC-decoder2/save_best/nrLDPC_cnProc.h | 2444 -------- .../save_best/nrLDPC_decoder.c | 541 -- .../version_deroulé/nrLDPC_cnProc.h | 2444 -------- .../version_deroulé/nrLDPC_decoder.c | 3711 ----------- .../CODING/nrLDPC_decoder2/nrLDPC_bnProc.h | 2830 --------- .../CODING/nrLDPC_decoder2/nrLDPC_cnProc.h | 2787 --------- .../CODING/nrLDPC_decoder2/nrLDPC_decoder.c | 745 --- .../CODING/nrLDPC_decoder2/nrLDPC_decoder.c2 | 534 -- .../nrLDPC_decoder2/nrLDPC_decoder.save | 902 --- .../PHY/CODING/nrLDPC_decoder2/nrLDPC_init.h | 1640 ----- .../CODING/nrLDPC_decoder2/nrLDPC_init_mem.h | 85 - .../PHY/CODING/nrLDPC_decoder2/nrLDPC_lut.h | 1004 --- .../PHY/CODING/nrLDPC_decoder2/nrLDPC_mPass.h | 1213 ---- .../CODING/nrLDPC_decoder2/nrLDPC_mPass.h2 | 1205 ---- .../nrLDPC_tools/generator_bnProc/Makefile | 27 - .../generator_bnProc/bnProcPc_gen_BG1_avx2.c | 1777 ------ .../generator_bnProc/bnProcPc_gen_BG2_avx2.c | 1773 ------ .../generator_bnProc/bnProc_gen_BG1_avx2.c | 1235 ---- .../generator_bnProc/bnProc_gen_BG1_avx2.c.1 | 1235 ---- .../generator_bnProc/bnProc_gen_BG2_avx2.c | 1232 ---- .../generator_bnProc/bnProc_gen_avx2 | Bin 617808 -> 0 bytes .../nrLDPC_tools/generator_bnProc/main.c | 28 - .../generator_bnProc/sauvegarde.tar.gz | Bin 9050 -> 0 bytes .../nrLDPC_tools/generator_cnProc/Makefile | 27 - .../generator_cnProc/cnProc_gen_BG1_avx2.c | 696 --- .../generator_cnProc/cnProc_gen_BG1_avx2.o | Bin 32672 -> 0 bytes .../generator_cnProc/cnProc_gen_BG2_avx2.c | 429 -- .../generator_cnProc/cnProc_gen_BG2_avx2.o | Bin 27264 -> 0 bytes .../generator_cnProc/cnProc_gen_avx2 | Bin 43424 -> 0 bytes .../nrLDPC_tools/generator_cnProc/main.c | 20 - .../nrLDPC_tools/generator_cnProc/main.o | Bin 3440 -> 0 bytes .../generator_cnProc/sauvegarde.tar.gz | Bin 4411 -> 0 bytes .../generator_cnProc_avx512/Makefile | 27 - .../cnProc_gen_BG1_avx512.c | 627 -- .../cnProc_gen_BG1_avx512.o | Bin 36144 -> 0 bytes .../cnProc_gen_BG1_avx512.save1 | 603 -- .../cnProc_gen_BG1_avx512.save2 | 578 -- .../cnProc_gen_BG2_avx512.c | 409 -- .../cnProc_gen_BG2_avx512.o | Bin 26776 -> 0 bytes .../generator_cnProc_avx512/cnProc_gen_avx512 | Bin 43464 -> 0 bytes .../generator_cnProc_avx512/main.c | 20 - .../generator_cnProc_avx512/main.o | Bin 3448 -> 0 bytes .../generator_cnProc_avx512/sauvegarde.tar.gz | Bin 4010 -> 0 bytes .../save/cnProc_gen_BG1_avx512.2 | 583 -- .../save/cnProc_gen_BG1_avx512.c | 557 -- .../save/cnProc_gen_BG1_avx512.c.today | 596 -- .../save/cnProc_gen_BG1_avx512.native | 596 -- .../save/cnProc_gen_BG1_avx512.unrolled | 590 -- .../bnProc/nrLDPC_bnProc_BG1_Z104_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z10_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z112_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z11_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z120_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z128_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z12_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z13_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z144_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z14_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z15_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z160_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z16_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z176_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z18_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z192_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z208_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z20_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z224_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z22_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z240_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z24_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z256_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z26_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z288_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z28_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z2_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z30_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z320_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z32_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z352_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z36_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z384_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z3_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z40_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z44_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z48_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z4_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z52_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z56_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z5_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z60_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z64_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z6_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z72_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z7_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z80_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z88_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z8_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z96_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z9_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG2_Z104_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z10_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z112_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z11_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z120_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z128_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z12_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z13_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z144_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z14_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z15_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z160_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z16_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z176_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z18_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z192_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z208_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z20_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z224_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z22_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z240_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z24_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z256_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z26_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z288_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z28_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z2_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z30_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z320_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z32_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z352_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z36_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z384_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z3_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z40_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z44_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z48_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z4_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z52_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z56_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z5_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z60_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z64_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z6_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z72_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z7_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z80_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z88_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z8_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z96_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z9_R15_AVX2.c | 992 --- .../nrLDPC_bnProcPc_BG1_Z104_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z10_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z112_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z11_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z120_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z128_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z12_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z13_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z144_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z14_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z15_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z160_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z16_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z176_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z18_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z192_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z208_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z20_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z224_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z22_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z240_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z24_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z256_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z26_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z288_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z28_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z2_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z30_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z320_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z32_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z352_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z36_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z384_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z3_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z40_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z44_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z48_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z4_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z52_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z56_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z5_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z60_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z64_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z6_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z72_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z7_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z80_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z88_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z8_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z96_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z9_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG2_Z104_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z10_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z112_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z11_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z120_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z128_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z12_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z13_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z144_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z14_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z15_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z160_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z16_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z176_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z18_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z192_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z208_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z20_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z224_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z22_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z240_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z24_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z256_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z26_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z288_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z28_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z2_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z30_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z320_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z32_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z352_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z36_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z384_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z3_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z40_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z44_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z48_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z4_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z52_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z56_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z5_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z60_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z64_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z6_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z72_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z7_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z80_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z88_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z8_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z96_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z9_R15_AVX2.c | 757 --- .../cnProc/nrLDPC_cnProc_BG1_R13_AVX2.c | 2346 ------- .../cnProc/nrLDPC_cnProc_BG1_R13_AVX2.h | 2346 ------- .../cnProc/nrLDPC_cnProc_BG1_R23_AVX2.c | 2097 ------- .../cnProc/nrLDPC_cnProc_BG1_R23_AVX2.h | 2097 ------- .../cnProc/nrLDPC_cnProc_BG1_R89_AVX2.c | 1177 ---- .../cnProc/nrLDPC_cnProc_BG1_R89_AVX2.h | 1177 ---- .../cnProc/nrLDPC_cnProc_BG2_R13_AVX2.c | 777 --- .../cnProc/nrLDPC_cnProc_BG2_R13_AVX2.h | 777 --- .../cnProc/nrLDPC_cnProc_BG2_R15_AVX2.c | 832 --- .../cnProc/nrLDPC_cnProc_BG2_R15_AVX2.h | 832 --- .../cnProc/nrLDPC_cnProc_BG2_R23_AVX2.c | 696 --- .../cnProc/nrLDPC_cnProc_BG2_R23_AVX2.h | 696 --- .../nrLDPC_cnProc_BG1_R13_AVX512.h | 2487 -------- .../nrLDPC_cnProc_BG1_R23_AVX512.h | 2202 ------- .../nrLDPC_cnProc_BG1_R89_AVX512.h | 1206 ---- .../nrLDPC_cnProc_BG2_R13_AVX512.h | 743 --- .../nrLDPC_cnProc_BG2_R15_AVX512.h | 792 --- .../nrLDPC_cnProc_BG2_R23_AVX512.h | 667 -- .../nrLDPC_tools/nrLDPC_debug.h | 182 - .../PHY/CODING/nrLDPC_decoder2/nrLDPC_types.h | 106 - .../nrLDPC_decoder2/nrLDPCdecoder_defs.h | 211 - .../save_best/complete/nrLDPC_bnProc.h.1 | 5533 ----------------- .../save_best/complete/nrLDPC_decoder.c | 541 -- .../nrLDPC_decoder2/save_best/nrLDPC_bnProc.h | 5533 ----------------- .../nrLDPC_decoder2/save_best/nrLDPC_cnProc.h | 2444 -------- .../save_best/nrLDPC_decoder.c | 541 -- .../save_best/nrLDPC_decoder/nrLDPC_init.h | 1640 ----- .../nrLDPC_decoder/nrLDPC_init_mem.h | 85 - .../save_best/nrLDPC_decoder/nrLDPC_lut.h | 1004 --- .../nrLDPC_tools/generator_bnProc/Makefile | 27 - .../generator_bnProc/bnProcPc_gen_BG1_avx2.c | 1777 ------ .../generator_bnProc/bnProcPc_gen_BG2_avx2.c | 1773 ------ .../generator_bnProc/bnProc_gen_BG1_avx2.c | 1235 ---- .../generator_bnProc/bnProc_gen_BG1_avx2.c.1 | 1235 ---- .../generator_bnProc/bnProc_gen_BG2_avx2.c | 1232 ---- .../generator_bnProc/bnProc_gen_avx2 | Bin 617808 -> 0 bytes .../nrLDPC_tools/generator_bnProc/main.c | 28 - .../generator_bnProc/sauvegarde.tar.gz | Bin 9050 -> 0 bytes .../nrLDPC_tools/generator_cnProc/Makefile | 27 - .../generator_cnProc/cnProc_gen_BG1_avx2.c | 696 --- .../generator_cnProc/cnProc_gen_BG1_avx2.o | Bin 32672 -> 0 bytes .../generator_cnProc/cnProc_gen_BG2_avx2.c | 429 -- .../generator_cnProc/cnProc_gen_BG2_avx2.o | Bin 27264 -> 0 bytes .../generator_cnProc/cnProc_gen_avx2 | Bin 43424 -> 0 bytes .../nrLDPC_tools/generator_cnProc/main.c | 20 - .../nrLDPC_tools/generator_cnProc/main.o | Bin 3440 -> 0 bytes .../generator_cnProc/sauvegarde.tar.gz | Bin 4411 -> 0 bytes .../generator_cnProc_avx512/Makefile | 27 - .../cnProc_gen_BG1_avx512.c | 627 -- .../cnProc_gen_BG1_avx512.o | Bin 36144 -> 0 bytes .../cnProc_gen_BG1_avx512.save1 | 603 -- .../cnProc_gen_BG1_avx512.save2 | 578 -- .../cnProc_gen_BG2_avx512.c | 409 -- .../cnProc_gen_BG2_avx512.o | Bin 26776 -> 0 bytes .../generator_cnProc_avx512/cnProc_gen_avx512 | Bin 43464 -> 0 bytes .../generator_cnProc_avx512/main.c | 20 - .../generator_cnProc_avx512/main.o | Bin 3448 -> 0 bytes .../generator_cnProc_avx512/sauvegarde.tar.gz | Bin 4010 -> 0 bytes .../save/cnProc_gen_BG1_avx512.2 | 583 -- .../save/cnProc_gen_BG1_avx512.c | 557 -- .../save/cnProc_gen_BG1_avx512.c.today | 596 -- .../save/cnProc_gen_BG1_avx512.native | 596 -- .../save/cnProc_gen_BG1_avx512.unrolled | 590 -- .../bnProc/nrLDPC_bnProc_BG1_Z104_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z10_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z112_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z11_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z120_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z128_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z12_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z13_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z144_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z14_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z15_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z160_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z16_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z176_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z18_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z192_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z208_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z20_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z224_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z22_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z240_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z24_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z256_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z26_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z288_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z28_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z2_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z30_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z320_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z32_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z352_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z36_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z384_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z3_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z40_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z44_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z48_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z4_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z52_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z56_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z5_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z60_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z64_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z6_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z72_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z7_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z80_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z88_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z8_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z96_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG1_Z9_R13_AVX2.c | 978 --- .../bnProc/nrLDPC_bnProc_BG2_Z104_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z10_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z112_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z11_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z120_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z128_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z12_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z13_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z144_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z14_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z15_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z160_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z16_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z176_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z18_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z192_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z208_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z20_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z224_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z22_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z240_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z24_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z256_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z26_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z288_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z28_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z2_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z30_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z320_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z32_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z352_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z36_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z384_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z3_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z40_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z44_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z48_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z4_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z52_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z56_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z5_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z60_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z64_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z6_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z72_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z7_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z80_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z88_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z8_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z96_R15_AVX2.c | 992 --- .../bnProc/nrLDPC_bnProc_BG2_Z9_R15_AVX2.c | 992 --- .../nrLDPC_bnProcPc_BG1_Z104_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z10_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z112_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z11_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z120_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z128_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z12_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z13_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z144_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z14_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z15_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z160_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z16_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z176_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z18_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z192_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z208_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z20_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z224_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z22_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z240_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z24_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z256_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z26_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z288_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z28_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z2_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z30_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z320_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z32_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z352_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z36_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z384_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z3_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z40_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z44_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z48_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z4_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z52_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z56_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z5_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z60_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z64_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z6_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z72_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z7_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z80_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z88_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z8_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z96_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG1_Z9_R13_AVX2.c | 749 --- .../nrLDPC_bnProcPc_BG2_Z104_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z10_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z112_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z11_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z120_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z128_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z12_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z13_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z144_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z14_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z15_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z160_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z16_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z176_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z18_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z192_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z208_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z20_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z224_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z22_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z240_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z24_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z256_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z26_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z288_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z28_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z2_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z30_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z320_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z32_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z352_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z36_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z384_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z3_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z40_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z44_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z48_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z4_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z52_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z56_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z5_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z60_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z64_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z6_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z72_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z7_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z80_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z88_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z8_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z96_R15_AVX2.c | 757 --- .../nrLDPC_bnProcPc_BG2_Z9_R15_AVX2.c | 757 --- .../cnProc/nrLDPC_cnProc_BG1_R13_AVX2.c | 2346 ------- .../cnProc/nrLDPC_cnProc_BG1_R13_AVX2.h | 2346 ------- .../cnProc/nrLDPC_cnProc_BG1_R23_AVX2.c | 2097 ------- .../cnProc/nrLDPC_cnProc_BG1_R23_AVX2.h | 2097 ------- .../cnProc/nrLDPC_cnProc_BG1_R89_AVX2.c | 1177 ---- .../cnProc/nrLDPC_cnProc_BG1_R89_AVX2.h | 1177 ---- .../cnProc/nrLDPC_cnProc_BG2_R13_AVX2.c | 777 --- .../cnProc/nrLDPC_cnProc_BG2_R13_AVX2.h | 777 --- .../cnProc/nrLDPC_cnProc_BG2_R15_AVX2.c | 832 --- .../cnProc/nrLDPC_cnProc_BG2_R15_AVX2.h | 832 --- .../cnProc/nrLDPC_cnProc_BG2_R23_AVX2.c | 696 --- .../cnProc/nrLDPC_cnProc_BG2_R23_AVX2.h | 696 --- .../nrLDPC_cnProc_BG1_R13_AVX512.h | 2487 -------- .../nrLDPC_cnProc_BG1_R23_AVX512.h | 2202 ------- .../nrLDPC_cnProc_BG1_R89_AVX512.h | 1206 ---- .../nrLDPC_cnProc_BG2_R13_AVX512.h | 743 --- .../nrLDPC_cnProc_BG2_R15_AVX512.h | 792 --- .../nrLDPC_cnProc_BG2_R23_AVX512.h | 667 -- .../nrLDPC_tools/nrLDPC_debug.h | 182 - .../save_best/nrLDPC_decoder/nrLDPC_types.h | 106 - .../nrLDPC_decoder/nrLDPCdecoder_defs.h | 211 - .../save_best/complete/nrLDPC_bnProc.h.1 | 5533 ----------------- .../save_best/complete/nrLDPC_decoder.c | 541 -- .../nrLDPC_decoder/save_best/nrLDPC_bnProc.h | 5533 ----------------- .../nrLDPC_decoder/save_best/nrLDPC_cnProc.h | 2444 -------- .../nrLDPC_decoder/save_best/nrLDPC_decoder.c | 541 -- .../version_deroulé/nrLDPC_cnProc.h | 2444 -------- .../version_deroulé/nrLDPC_decoder.c | 3711 ----------- 842 files changed, 1 insertion(+), 751422 deletions(-) delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c111 delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.save delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.save2 rename openair1/PHY/CODING/nrLDPC_decoder/{nrLDPC_mPass.h2 => nrLDPC_mPass.h_native_memcpy} (100%) create mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProcPc_gen_BG1_avx2.o create mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProcPc_gen_BG2_avx2.o create mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_BG1_avx2.o create mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_BG2_avx2.o create mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/main.o delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_R23_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R23_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R89_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R23_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/save_best/nrLDPC_bnProc.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/save_best/nrLDPC_cnProc.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder/save_best/nrLDPC_decoder.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_bnProc.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_cnProc.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_decoder.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_decoder.c2 delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_decoder.save delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_init.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_init_mem.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_lut.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_mPass.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_mPass.h2 delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_bnProc/Makefile delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_bnProc/bnProcPc_gen_BG1_avx2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_bnProc/bnProcPc_gen_BG2_avx2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_bnProc/bnProc_gen_BG1_avx2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_bnProc/bnProc_gen_BG1_avx2.c.1 delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_bnProc/bnProc_gen_BG2_avx2.c delete mode 100755 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_bnProc/bnProc_gen_avx2 delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_bnProc/main.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_bnProc/sauvegarde.tar.gz delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc/Makefile delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc/cnProc_gen_BG1_avx2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc/cnProc_gen_BG1_avx2.o delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc/cnProc_gen_BG2_avx2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc/cnProc_gen_BG2_avx2.o delete mode 100755 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc/cnProc_gen_avx2 delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc/main.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc/main.o delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc/sauvegarde.tar.gz delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/Makefile delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.o delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.save1 delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.save2 delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG2_avx512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG2_avx512.o delete mode 100755 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_avx512 delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/main.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/main.o delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/sauvegarde.tar.gz delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.2 delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.c.today delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.native delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.unrolled delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z104_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z10_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z112_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z11_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z120_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z128_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z12_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z13_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z144_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z14_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z15_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z160_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z16_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z176_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z18_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z192_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z208_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z20_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z224_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z22_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z240_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z24_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z256_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z26_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z288_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z28_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z2_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z30_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z320_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z32_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z352_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z36_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z384_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z3_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z40_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z44_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z48_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z4_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z52_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z56_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z5_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z60_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z64_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z6_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z72_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z7_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z80_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z88_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z8_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z96_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z9_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z104_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z10_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z112_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z11_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z120_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z128_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z12_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z13_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z144_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z14_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z15_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z160_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z16_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z176_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z18_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z192_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z208_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z20_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z224_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z22_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z240_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z24_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z256_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z26_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z288_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z28_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z2_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z30_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z320_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z32_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z352_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z36_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z384_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z3_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z40_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z44_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z48_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z4_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z52_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z56_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z5_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z60_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z64_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z6_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z72_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z7_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z80_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z88_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z8_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z96_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z9_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z104_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z10_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z112_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z11_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z120_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z128_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z12_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z13_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z144_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z14_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z15_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z160_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z16_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z176_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z18_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z192_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z208_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z20_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z224_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z22_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z240_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z24_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z256_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z26_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z288_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z28_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z2_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z30_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z320_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z32_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z352_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z36_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z384_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z3_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z40_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z44_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z48_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z4_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z52_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z56_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z5_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z60_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z64_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z6_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z72_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z7_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z80_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z88_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z8_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z96_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z9_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z104_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z10_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z112_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z11_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z120_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z128_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z12_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z13_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z144_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z14_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z15_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z160_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z16_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z176_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z18_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z192_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z208_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z20_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z224_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z22_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z240_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z24_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z256_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z26_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z288_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z28_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z2_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z30_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z320_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z32_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z352_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z36_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z384_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z3_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z40_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z44_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z48_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z4_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z52_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z56_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z5_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z60_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z64_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z6_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z72_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z7_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z80_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z88_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z8_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z96_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z9_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R13_AVX2.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R23_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R23_AVX2.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R89_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R89_AVX2.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R13_AVX2.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R15_AVX2.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R23_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R23_AVX2.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R13_AVX512.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R23_AVX512.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R89_AVX512.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG2_R13_AVX512.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG2_R15_AVX512.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG2_R23_AVX512.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/nrLDPC_debug.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_types.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPCdecoder_defs.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/save_best/complete/nrLDPC_bnProc.h.1 delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/save_best/complete/nrLDPC_decoder.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/save_best/nrLDPC_bnProc.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/save_best/nrLDPC_cnProc.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/save_best/nrLDPC_decoder.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/version_deroulé/nrLDPC_cnProc.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/version_deroulé/nrLDPC_decoder.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_bnProc.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_cnProc.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_decoder.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_decoder.c2 delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_decoder.save delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_init.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_init_mem.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_lut.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_mPass.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_mPass.h2 delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_bnProc/Makefile delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_bnProc/bnProcPc_gen_BG1_avx2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_bnProc/bnProcPc_gen_BG2_avx2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_bnProc/bnProc_gen_BG1_avx2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_bnProc/bnProc_gen_BG1_avx2.c.1 delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_bnProc/bnProc_gen_BG2_avx2.c delete mode 100755 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_bnProc/bnProc_gen_avx2 delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_bnProc/main.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_bnProc/sauvegarde.tar.gz delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc/Makefile delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc/cnProc_gen_BG1_avx2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc/cnProc_gen_BG1_avx2.o delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc/cnProc_gen_BG2_avx2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc/cnProc_gen_BG2_avx2.o delete mode 100755 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc/cnProc_gen_avx2 delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc/main.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc/main.o delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc/sauvegarde.tar.gz delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/Makefile delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.o delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.save1 delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.save2 delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG2_avx512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG2_avx512.o delete mode 100755 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_avx512 delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/main.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/main.o delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/sauvegarde.tar.gz delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.2 delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.c.today delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.native delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.unrolled delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z104_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z10_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z112_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z11_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z120_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z128_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z12_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z13_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z144_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z14_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z15_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z160_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z16_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z176_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z18_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z192_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z208_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z20_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z224_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z22_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z240_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z24_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z256_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z26_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z288_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z28_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z2_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z30_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z320_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z32_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z352_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z36_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z384_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z3_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z40_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z44_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z48_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z4_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z52_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z56_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z5_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z60_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z64_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z6_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z72_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z7_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z80_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z88_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z8_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z96_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z9_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z104_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z10_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z112_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z11_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z120_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z128_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z12_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z13_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z144_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z14_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z15_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z160_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z16_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z176_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z18_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z192_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z208_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z20_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z224_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z22_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z240_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z24_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z256_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z26_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z288_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z28_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z2_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z30_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z320_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z32_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z352_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z36_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z384_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z3_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z40_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z44_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z48_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z4_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z52_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z56_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z5_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z60_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z64_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z6_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z72_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z7_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z80_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z88_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z8_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z96_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z9_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z104_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z10_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z112_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z11_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z120_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z128_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z12_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z13_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z144_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z14_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z15_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z160_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z16_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z176_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z18_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z192_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z208_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z20_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z224_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z22_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z240_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z24_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z256_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z26_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z288_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z28_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z2_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z30_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z320_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z32_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z352_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z36_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z384_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z3_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z40_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z44_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z48_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z4_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z52_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z56_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z5_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z60_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z64_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z6_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z72_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z7_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z80_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z88_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z8_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z96_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z9_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z104_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z10_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z112_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z11_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z120_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z128_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z12_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z13_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z144_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z14_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z15_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z160_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z16_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z176_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z18_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z192_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z208_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z20_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z224_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z22_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z240_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z24_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z256_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z26_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z288_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z28_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z2_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z30_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z320_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z32_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z352_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z36_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z384_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z3_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z40_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z44_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z48_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z4_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z52_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z56_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z5_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z60_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z64_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z6_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z72_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z7_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z80_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z88_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z8_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z96_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z9_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R13_AVX2.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R23_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R23_AVX2.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R89_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R89_AVX2.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R13_AVX2.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R15_AVX2.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R23_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R23_AVX2.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R13_AVX512.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R23_AVX512.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R89_AVX512.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG2_R13_AVX512.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG2_R15_AVX512.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG2_R23_AVX512.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/nrLDPC_debug.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_types.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/nrLDPCdecoder_defs.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/complete/nrLDPC_bnProc.h.1 delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/complete/nrLDPC_decoder.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_bnProc.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_cnProc.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_init.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_init_mem.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_lut.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/Makefile delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProcPc_gen_BG1_avx2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProcPc_gen_BG2_avx2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_BG1_avx2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_BG1_avx2.c.1 delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_BG2_avx2.c delete mode 100755 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_avx2 delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/main.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/sauvegarde.tar.gz delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/Makefile delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_BG1_avx2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_BG1_avx2.o delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_BG2_avx2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_BG2_avx2.o delete mode 100755 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_avx2 delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/main.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/main.o delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/sauvegarde.tar.gz delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/Makefile delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.o delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.save1 delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.save2 delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG2_avx512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG2_avx512.o delete mode 100755 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_avx512 delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/main.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/main.o delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/sauvegarde.tar.gz delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.2 delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.c.today delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.native delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.unrolled delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z104_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z10_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z112_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z11_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z120_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z128_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z12_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z13_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z144_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z14_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z15_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z160_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z16_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z176_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z18_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z192_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z208_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z20_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z224_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z22_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z240_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z24_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z256_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z26_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z288_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z28_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z2_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z30_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z320_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z32_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z352_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z36_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z384_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z3_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z40_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z44_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z48_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z4_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z52_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z56_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z5_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z60_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z64_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z6_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z72_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z7_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z80_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z88_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z8_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z96_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z9_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z104_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z10_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z112_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z11_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z120_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z128_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z12_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z13_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z144_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z14_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z15_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z160_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z16_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z176_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z18_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z192_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z208_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z20_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z224_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z22_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z240_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z24_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z256_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z26_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z288_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z28_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z2_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z30_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z320_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z32_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z352_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z36_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z384_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z3_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z40_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z44_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z48_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z4_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z52_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z56_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z5_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z60_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z64_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z6_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z72_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z7_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z80_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z88_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z8_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z96_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z9_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z104_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z10_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z112_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z11_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z120_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z128_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z12_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z13_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z144_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z14_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z15_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z160_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z16_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z176_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z18_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z192_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z208_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z20_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z224_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z22_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z240_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z24_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z256_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z26_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z288_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z28_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z2_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z30_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z320_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z32_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z352_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z36_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z384_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z3_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z40_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z44_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z48_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z4_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z52_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z56_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z5_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z60_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z64_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z6_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z72_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z7_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z80_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z88_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z8_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z96_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z9_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z104_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z10_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z112_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z11_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z120_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z128_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z12_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z13_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z144_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z14_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z15_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z160_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z16_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z176_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z18_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z192_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z208_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z20_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z224_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z22_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z240_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z24_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z256_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z26_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z288_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z28_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z2_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z30_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z320_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z32_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z352_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z36_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z384_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z3_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z40_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z44_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z48_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z4_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z52_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z56_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z5_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z60_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z64_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z6_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z72_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z7_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z80_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z88_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z8_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z96_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z9_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R13_AVX2.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R23_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R23_AVX2.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R89_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R89_AVX2.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R13_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R13_AVX2.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R15_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R15_AVX2.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R23_AVX2.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R23_AVX2.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R13_AVX512.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R23_AVX512.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R89_AVX512.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG2_R13_AVX512.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG2_R15_AVX512.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG2_R23_AVX512.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/nrLDPC_debug.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_types.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPCdecoder_defs.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/save_best/complete/nrLDPC_bnProc.h.1 delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/save_best/complete/nrLDPC_decoder.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/save_best/nrLDPC_bnProc.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/save_best/nrLDPC_cnProc.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/save_best/nrLDPC_decoder.c delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/version_deroulé/nrLDPC_cnProc.h delete mode 100644 openair1/PHY/CODING/nrLDPC_decoder2/version_deroulé/nrLDPC_decoder.c 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 0000000000000000000000000000000000000000..6e555b65475dee82783a4258a632b9ea75c304ac GIT binary patch literal 70592 zcmeI5dtg-Mwf6U9a+#2X`&AI9LJ$xV5-vs|Is~~X-o-;v978fdBsV7sAW{h`3Mzs~ zEA*(vwq9!S06j=s5k?EB$J}YKyc=Po+KD&-Ngm_3pi%nRixZWf1)Xn{1t# zy`TMiZ|hypo;`bZn57e^O-l3m94tQPd?&sI)p43T#?_E3hnyZxcW3&PmG4ej_UDZx zt=w7t>8GDoPPr#Ne=u!MSvm3JqFqx~Wf+<^HpW+$ZtZ{1a#PRB zpG;X*YKs2IJpC#5GnPU3Aa!-6zKUuzz z;^=t#i_e}-oqFC(qCI@Y#7 zbk^#N^M+kRY^NVOoqnjc|58vU)9qcSJ1eP^XtdQqChZYQj!)KI>}<8IuqlPmHd1uJ}Oz2pE1SFyHg8WCZu>;Vv4sq z$fP|&7Po4SR!b)BB&rQ18v%Bnbc*{^r?^2H{KZR2~ zvrVRWR_YWtNa_@4sy)R|;S|qmlPMlZo#F;bo#ITjr}!zH;(>qJ6z{KGi!m1svs0(I zK~kqUQ|&2!3a5B>n@sTzsZ-n_sZ*S(FHefM!LNQgB&K+)SGQaJ0_T+b>Zi4%cuwjR zH%RIfXR1BLPwFV1G@(A@b@8NiBwQEIX_G0Qn>xh}k~+ni`tqcB8~k=NH!;Qkg}&Wv z?I@m?I>il=I>ni4Pw|sFiYNVM@-rUAlh%=N6whmuDc&)4iW?+#iZj)o;-_$mcWjd> z-YIp88zgm#Gu58rr*MjQYLhA6IdzH~Bz1~2)t=&~aEfC8zgm#Gu58rr*MjQYm+J7J#~s3Bz1~2 z_2o(NHu&vk_rw%$Bj0ZJNS)#aNuAizlrk;ktN_f7uk*{$ASL zhSf85iW?+#iZk`)N%1!L?Pkx!6mKKnZuUx@;s!~b;!L%t_(>hblYTS#8IR&g>qt0? z_iB?V-aB=Q8zgm#Gu58rr*Mk*Zj&kACv}P&Bz1~2)t=&~aEkY7lPP{$>J&Ff>J(?H zJ;hJq6hEy^rg-1fDQ=L|Db7@Til4$M-nUJrc)!#sZjjU|&QyDfpTa5LuT7@->8VrP zAgNQFsrD2E4&=ubNMOX-=nq zpY}|8e2*S~rFsU@KWTYBJ-$khdGwG=UlJZ5_E#R?ob7Y`=^2?>f$R?5nDu3J4P>OH z`KW4lF}3)`w%LLGE<{iL`(@>1rw4KaS-Bl@b2?;o=#ZBc$jQyf%=C!dob-$gYAnN_ zNeew^WKzqSe!qzvEg9+lWJ_9Fn(1MnLuU7E>V^}@GS5DTbgx{`UL7(rI%ef%2C_S6 z=Q>Wu&S~lCnVA7O-S4A)B2qr{4*_TUGW=Nq zLt6hxu-W9r=kJkx2k#$5uk`N=`_ia30=*`z5?yHwz6?)@?MLPG>i1{(sch@Z1+;r2 z&E+(DTu+Y`^w>n&v-J2ot)Jy{n(L^N+v)Lis>)h#D%sxVJZhse?Kz7c^bJ6B4LzQr z^`CfjGd0=Vf!3?&QRiva^99Wzr;Pf4ar0%)70$mkU)x;nR5VvwM60XRdZ*@|PT%JI z<|1b#wd8X$oAceipq%+uVhTO3puN}9V=g^zqsRU9_zvkmq{lvb9HK|YNyNwa$^0=C zB@^|*odb8QO|)+2;$hlnEzM*a6EkNZJ;u<3=B}0HTxVQ!sY6j}p5RPup5#nvo=UNz zxmK3G&Hb9saK6$!*csYrAb#j?68u4qh3|ucTZrC@8G1tgi^qjnszcR8>bB3TM|| z9<8gmyrQr+I_<*CCxo#bE}L8wzB0cdJpP&)#Rc=6h0cWX+S*{aR@GKl)kcB~>Z&S(t<^KQs@tgepIW^h=LTJQ>z zV)|=J2AfDM8WU~|&I}F--qOJ-pIsMitg4+mELfE|YR3r%gW+&Z@#ryC!JBJpMhr90 zMeZ}z?`_gb(b!eQ;q_Y_oDD8Z`I5yNgQ9Wl0Q+$CeH&OUqCjc1n@yAvIsA5(^=(o7=tFI;1$ zI9#!yF;ZVu5~io3F@x>lUwh-MA+hnHJ+FMx36#I~Mv86`SCNn>+>aCK1dW+$;f|mW zTt0Ce<&~8UJP016o3SIjAtY=6ga+ZYA3WP0h}Dl4;b_qf&p1UxOfK_cm3Iwhw$=HF zr;ausMJHUIh7q(TMD)XWI^GX`Ao@6BgQzdBn4fGmOcU`5vD=5`udSLD??ZhgTGP}R z8MSE4C^NNVMh&KT(*bD2q6c_@y}gHk?4{Kgd{fJ*rk@heUdzv2|}D^3x=;uP^KP7%M6h~J~xxRerb zKY!-B$!|SPz9znr=5sGdq@~ey4Z6CJ?!5%u7r!eFyxQ#Wxz}7gCEwg(o|fkR7?G!( zW$t`RPtTweK*v*tj5SQaV(z`06mRD$vzige3~V-#S9O+IcX#`HPo>qY9oSCqO`o%! zte?iV`_MH3C+jz{?bDW;?IZNW4btTr+VE=2I9TTHaFsM~U;(<2;S^JFvdzALlXWJo zyNA-u8(rD$2kmlP@;Zhi436knu5F_hdIYxR7MU#n*$;1VTV!$-? z0UGM#Wc@DI(9Nza8oDK!__ajQt#d*e2ZV+>lGeR`E^}p3=k3YF<;ldm5=FP6O=u|3 z$$BW((A};q8oD=`cweIE)@df&oz2sotfR3y*SWH&^Bc*;^~uDClZoF-CO(=dx@q%( z)ur2M-HYert{m%KD1KXm07 z>2?0c!f|GpAEP)m^ru+y=Uh2fJYdK(=~(0jgc|Bf>t3DDyK*8q4I~+1T#Vf1%5m~1 zRObSaXE<4NXg!BCC-Y?^2eV_Sr@oR@-6Pb1srGeLdx4X+Ggj?uMh?kp_a#;L3)OuO z$T~AEm`VK$(6xPf-cHZ%>NpbJ$oL#{CD93dYZxis>c&MRc&m@zO{*OZa4`F$-_koo zC$paYcSG>{|CpKso_@@%clOplG3&j(_2Xte=&gTh)(4x*y-v2{GaDnk4WGMF;%%h4 z8zFBa-QAetZDhC`mwOwT?#2vnBj5|t8`}-uMhD*@+L-5U%EQ6?na}x(bY#6 zah*lpMo*u4PjfFtJK4Q_=1uT6Z%=REFski#Z=;`Y9Br)dHu8NB5w^zL818$5Hr9I^ z1@6X1Z==xNc+%S#;cjg4Hi~`p^@;N%Z)2p}w_V=GXkQt%v)deID0Q=D(FAodtJ&Xl zXQX%bMl)V7s*jpgUjMckInT)BX5gJ^=0Bjx%M6%0+;?Cz0(bt6`X}1ws#iko=5#eJ zxha%=fzRmPddONI@2}7(_38;UtJkn%^hGm;(j}nJFq(q*z!uIdqB)|kLj7N zZ@ZhueXfVh8ctq(58ayWI6bbUU8Xkw{cqjsI@*_KbpQQpmU^4r?{hb|EbTd`(((0t z#NArKJ5PU^dg{ObC>QO&)7|`-H_zDXZZhAsH ztxjMNh1Im_MwGr?+Dv;)tL}CYMc7!!@pbX#ckGtq@7T9v7hl(`&b{d5WuTLjb3RGb zPEW_*@w}X|Ia4W0>8w*{GCC1Lvt(Y(uB<_hc?tM@Q@iSG2T>ivzfKBoR28IC{T4cYXsCl$6fonaI+dRwQ3!eA{( z2TO8S1JtQB=Xy#mpYMM<=9w?dXx%Z}g-s37!m8Se>ZZy_;i8f;;W49z)0Ob1MZ@RT zHWkjUYHV;^q`GQ$;oORfmdH6MZLZ806nHdOn6S~ZsHwfM@#gwSgIAV{oByxA?6PTB zIZo^{zPZwGF6EamSX5k4VFu)up)2|{fQH6OI?o-4VKSXC48)@aaGb+k(DOqx1vBCXMzj%m?|OonSB<)#u! zbV@mIR%p$i;|p|sH}D~Sib%^`L(l#-nSuRj`P~9@X~UPKAmmf!P%r=R|4?bA=c zW*%unPg@Y!8Q4Mp?F{Vnj}AN=cs@|{QQDv$fj_2==;r?4Bk-KrZR$I0p3=_hW?ll% zc^lo$i~r`pv-E1(@aMcrxLd^38F;Z}jonYa#^Mwq-O^r!B^EpTT#pdIerH^0y zsJ{f+r^*2hHIN@Ce%)?olra3+`-V`-9$n+qcl`4j!-d1$_OcwNVs7h z-M%rqX^s;PoAXb)PsDAeI9wE_v&Kj?8g{pd2+uBWh$O4bsjjP?8+4zVY8$HN)I?aF7x%|B*40%v z6w+CBBwF5B7vS|q6BcCcK-c1uPWbUa+-l=KTQ3_gd_(}?ziB^kV$AQt* zXyfAA@|uWQq0{cgG!Q!~)-0F`M_bV`LE-q&8<4(A~y2%^$!e~`v#4}2RN$-l<%iIA> z^&Fta*KrLIOz4WKy`g+T#B;#pOQ#1XoO^EYoPyB>BZ9+g%x64$X>6*El)A}Aw`P$V zt(aFzA5Mpl85JBpH#nR!w6uas4WC1Cub4l)K3dlpsi0h@JyG(HQ&Ha(o)eAS6rMa~ zu@kPYtC)}cXc6O)JiWzExQ0FysvkS+>g&Ui+H#sg%8aDPiB?kH%LYm`y(D>oBEyG@ zs@kv`RIe^FmzNu{Y2&KRk;$?Rla2O4sRd7-Mz%P8-K4#&xk@7^d(vrV;44G}8qz4@VwE#F?r820<+Z1Qvy-SmdH z$k@Tv&g;astv%k`Qp-7wXSnBtSoKNY@wEwzy?GJfOr9{|yx`#Jvzuxgo4iBV@R3dK zR?)3RB?Ti!4e?ZSX~?~DORv7gbd`2dXJ6mktiT$&u+)z<^Dv8h{ce26&UdCw$jkJX zT|u(4> zheBrh^FHhD^*maqTl`)9sL&^{Zoc3%3-~bW$2>Wv-@>|g8v=iKM9kM&?@g~}algT! z*UhXC7W!V+L#&(Io*A9N0%hcxSEB2I_n#SelF{~gg%}1w}pNa>wH1l!ThXd zy_sIk5_F&G&m>si$U1!SQ`UE}K92c6vyRm5%z7SOwKe1F?0yNv-(b?d0@j19U&s73 z)|*)$%=(S2Z($vIyMpz%SubGzd#rb6%b@?Su|Ak}_gf(p`yPW7cmFdM0hV z^Ck2itnXqy#PyuXI)%brppRfZByCBsyj_ahE^lhPZwKjjN0Ew@-sC;Rrd6^sW>+Ech;@j`U=;e@oGqEBZZ({(z!y zQ1nL>{c%NqTG6*Dx_Sbe@Lp}bUlyI%JE>hF_Sr7!TPL5eCEdqwt4a68Pmks4PP|6B zCtjc26R%C25qsx$d}1ZeMN;ka&f8k{K7PhW`x1JRP-BZdvHIkm__)Lg9i7F*qtS9- zYvmFnBF>4ub2;k0sMGX6*2|XrxV_jJnpJDOr^?>e%W`j9l=V))TB$q+X!XYct%=xa zc!FiDp~ZvJqIr^tj) z&dL4|N?Za8Po8#J+4yPU%O*{_YU0)5tH+nog#+*Jn4E_CD1C;QK@~Ucc3?IM;a&tOh-olpf`xxGbp)Y0K{3)VY zpx?$i{n@6wKwr)}&M)aOYW}p+Irgcy)OfgiMtq*7FJ~R~tmAstTD-Z<6ZPOv6T$Ci z{xOR;=Q!ZapGukq{2R&KSkL8G=+BuITJnW%Zcj7I2%#@weyq@sv3`Znm+&^~L%Zf)Nwdrqd@h|=nFZy* z-^3^A=KfK$$a!CD>E_RV5$6Xj-H!8i(eAxm{|<`}S@j$c{Bz77RQRKUe~bB#6h4pR zf$<(=zANiyymo(v3cioI5r>vSg`X_=5zJ3h_)5WF%6yf=KPLEU=6_)EcHVv@_&b*D?Q)!fzA&L(KnJ z;eRjqL(G3*@pgQ&Ou%SCd7Sw+ok9W4khiE_IxmfV`GQU*e9~AsP<{wh{R|KES z7YKe~@%DJ%7yLBlKd^Ya|JgYH(U?rg?_joT4Ng5S;jNQ<}Y4-5Vn^OXv}MDXbU zGKJqD_;Kz%vvjwp!fzM+66SX(`~kslWB#DR9~C_O_>scr@$nV;20wOXUHWUN;NR!| z6e|3D!NZS>EZ)wa9fF4+Usd=cf`=bJR`|YrJjQt8$HA=2de8%GKc)l)pkb?$B7DGD|qC9)6sx@L|EjkCh6)MDXzAGKJqDc=+)Vh2JiC z_;H8A9}xW4IFAo1e0TRR^5UPr;K#49F8x?3c=+)qgR`{^s;m1maUn2Oo*pJH;ey8B!$JZ?0p5Hva(G>B4 zA5UXl=3A-Y;m3;eZuD;!YxBZA+?{85DuoRJuR_%V-l8UK92!;eE1 zzD)3yoIjHl{&vB`k83Rcd~1FW2p)cXTjBk|#PPz9omrQD94UDCF{JP_1P?#XviOh_ z_hXab;m5@azgF<@lSav^IgFspWnCmkQ48J`d4U!799WK$1bePcn%Rf z{8(V|A*v6@tC@m_AHxd2Q1Iyg5`|wUc=&OH!fzEk{J34=_X{3=JfQGL1P?zRRrtV} zCi?OC!;g8axA3pv?_fU;RrooAhaVd(-p-%xf`=bpR`|n$hadl2;d>59954JhfOVN~ zV+D`%)sV%9s7mD948h}kb(X?62_EOGixvJmg2(yl7K^vz`KsV?zW2Jt+x`Ee;BmhC zp~c(v=MGGa=WhPqu?y=me@X?9^VKqipDB3sKdkTz1&{O9B?`Yz@Hk)HpzvD-kMq^- z3cp|Q@Z$l6KO%Ve@u*=)Hp5Lj0haa!8czb>~2p)cXT;cZ$9)A3l z!v90?@MGp6Z(OGTc7OV_o<@2GJ>bUy79S!VejF=!_%WpLGXxJm&Qkb01rI+yVDWbU zzb|;?^A?M@`~RBY;m0>E-md=x!Q=DehZb+wA3TeKMGN8yKjyP8^QTns=zp2Q&lEiT z7*_a&f`=cMDEvCX!;c#jeyiZ&$L$KgU-0nb0fj#z_}%QsqY6K4aAN%7$8%Yi`M*T) z@Z(B_-z0eW@y81Pmf+#X_Y~eYB(eYSVe7Vm}^G_)cdh#vgv{$GY@mSn%*; zwZg9!JpA~O!oMJR_;H`Y9}+zL_@2ev`Q{szI9~WMlXaPI{RIy{4p8`Mf`=c!YVo#T zZW285d4a{-{a+(^`0-(jx9fjK@bKfa7H`*oSn%-U5ry{;PmCw}A7EX^GbniY(fz#! zs!H;uf`=c=l=^219)1if{6fLQk4qGOo#5fe4GOh4&REju(E+WL@S@q2S@i zaTagK^J>8(pTBDHcK;g$4?i|ryj}l#!NZRaTfANWUctkU`xXAM;L-mh3hy707*F^y zz`BfQQ1I|$zQUIZ9)2uS_?d!-AHxd2Q1I~M5`|wU_<^0h@o!N0UkV<6{Jq87^P69k z7*F`In04vL>4JwJXDj@2!NZSh75*u~!;hOS-p;o@f`=dXDf}V9!;kMNeAnW{_`r{6 zurA|sj^L5c<1F6p|22Y#A1f^0p08U34?i|ryj}k$!NZSR6@IVa(f|Dle^~JF;}M1T zk4%gw{1{-pg?|MPKjtfZso>$qGKHThc=$1_@CyZhA^UNO!v9F{@Z&2MZ_jUFRAPMK z#~!T9d@B(={5VnJ=LsHuY*P4Df`=d1TD+ZaPYE7=+^q0>1P?#%Q}~Yr4?m`j_Tnbv za~kWoeu8{H!{Y7!pDTFyagxQ`^L4%8;l~P#x9eXmc=&Oh!fz5h`oC4-_X-|<+^_J5 z1rI+SQF#9tFV2W3{1{-pg?|MPKjtfZso>$qGKHTh_)7L;SmFO&@bKf47H`k*5y8Wc zA1i#{a}whNKMrPH=I6zNhaYDse7)e|$0m!n^KF&j;m5TK|CHe2$IS|VQ1I~MyB2T9 z^Ao`%pVLabxXJwK$2#&2ejH-)cKzc84?j+_cso8(!NZRW6@Ing(f@S{ze(`$<5q>= zD|q;Ezrr6DJp6b>;r-_(<|q6ZU|q&PD0uiWU*Ssye+T=qOyO@8Jp6c%#oP0{U-0nb zZxsHx;Ni!d^Wynt*I&Ro@(q3*tMFF|9`^&xuy{M)>IIMc0h$zkmEdtdz*>dhA$Z&m z@T$ez<9%E3_&)tzi?{p#so-%xK>FX7{TLwb*#c)C3u{#&QSPeg2(yleHL%W^KrrBeDC`fZ&uO&R|Jpq)n8b=UH|)n z-44YDrtr$q4Rf2qPx7d*~aXDWPD@Hk&xsPL-=kMq@a z3cpG4@Z(m6-z#|dalgVJ7W^Uh;}L~Ft1L18@Z%`fW&SS|Jp6cv!apH+_;H)UzbSb5 z@sPqF6FmIrn~*%;`mmlxyUqPP@MC|4A0v49aje2u3LbvE$>MFltQ0)*`96yeQ9t3w zCj}2bK4bBA{jUoipC5l=@pk>k1rI;^FQiV;BK_Exb;J|>4=Q|#;Nizog`X~X_;IGf zM+FZ*E>!r{f`=d1Df}kE!;f1Pey`xuyLfTjukalvdixPi_^}u3>9pIP-Qz)+#`7SalOUc^=}b8{P>K;+x5RAc=++K!XFnr`tP4ifuu#ovoGt2 zC;S*x_!7axkEIGfUGVVZOofjM9)4V?@T&z6Kdw{wO@bfDe%z|?|0Q_%@t+oN&u{4z zFV2W3{CE-T(!Vu=haVR!{KJBWAD>eAmjn+#?y>j~bs2vAo#5feLkfRP@bIH=suu^D zZ$nu}eBj4(EZ&aiWr9aOUv2Sr|7!&gKi*>TcKr_s9)4VJ@pk>Y1rI;&Rrq%VkNzK4 z_~U|yAN?04k7r-j5l{FrsPH9%haXE7e!Ae{$C(Nr6+Ha7P~le#{zCTSI)#5j@bKer zE#98r;Kg3t5Fhw)IP21nmkS<#oTc#1f`=bhDg0xChaaD^cst)-5biv_%WpL6@rH!>lJ>5;Nizr7H{XEB6$haay}`1yi|AL}jN&bJkUhaXod{9}TL zAD>eA1A>Pi-?n%=o*xSy`TU8++x_o#Wnw(x$APTNc#ac1{5am??fPp34?ji~{%*me z|Em@L3BkjUn-qSx;Ni!;3jdDa;m5-Ye_ZhJqyH)|&Mo}QI{XVi1{J%Uy^@Z)ra zuMs@@A659f1rI;2R`@3b4?k{F_}zksANMN!JA#KF4=em}!NZUKYvS>@2-vqoBDs5;R$>jTCDyW?vL?;S&@iRt@TzfR~8-mVgQ1_!cM=&!ThEcBh+&s9Rl?=!6xI&V4;3;my5{||)z zD(lY)eQ1^^>=XKftiL7ndhX|+h5i`Ve_ZI#bKElc74vc<&tnIn^KEZVFQMPe?e-V? zMsBY}=$pC!7qV_%xJkFfY{BnkzE<$azk3D$YtHlag6GSF&ZC0w$NhX-@H1G)?}#Bj z9RuEumjpkL`JamVZ{hyGDfmUqsgEe}nm{g8w%6+x)(;SEb_1;35sbBW;TN1feezTiLPI4l%AemDE;g1?L7`KaK7T>lG#uVVhEf^TO2{|NpP z&Y!mhkKf-uF8CVme+M2n;`27wKbUpIa~kub1mBtKy;AV_9j5CAkKgge?~bDWUwUD7 zRti4E^{*B6<97}p=g&T&pU3_Awb0?C!$SWS_vgQbemd(8 zzaswkbDZ;pj`Q`?q|W_0OXyuWA4Uls$HVbLpTzax_dn5}v$@~b3jSJ-&pe_3jq|)o z==XB{w+a1K)>jL?h_@dSdI@iTPv{r$Hhymo{h!48%Yr|RTaE_z$_B04F^7^Eqzag z&;7qk=x4Iu*9yIn$N8|(OSnHz3jJN~|1+$cYR7P2%*z{sAHwba%Hp|;ZmE9?{%5>1 zJKL)iasC6xbCA&Q^)P3&(2JPAQ0P~4|8Efbg{;>JJ)Psj)8Kw?E#NlIOJ`m;!?edW zpT{lrAoGT`d8eS^=9NJ+i>?* zMrJq74Oi99sUyZ+FP}X-8d*S?Da=x|ymoHH6pd@uRkaZmq4u1Din^MbNG&y0Th|yV zn0)E<;qH%zbD_w*@SJFQO@v2r@-IOuYGQ-9qNWh9Oy=t-&^esgbo$boNzqVD@m50o zfxdpex80RqOj%Adr?)3NgIMQjXVr1;676D#Y=0Q-Fm;}6d2=ns)R~Y2w7rYl--8Q4 zq?sk;KF6QT^%&VFv-hrf9`hLIvA5NdHGlq%0jWkmy`bn$qvi?@@^SK{(k`*+8r$b literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..4272cb0f12e14ff175f302b5f994f770d2600a03 GIT binary patch literal 70592 zcmeI5dtg-Mng7pZa+#0>!W{&0Dg*%`A>m>yM28>(ig$4-iepG75XsF+LJ(1cih_zD z(kffE*w#xe{(!F1Rzy*;NQ$pYNG7XHJ;q(`KEU=JPpNe9l=;d<&}Mv~`cGAy*DLeVsne>=~=ynX%%J zn@C!{v-ZcRapZn^P(r==%X ztkroZfl2D*j};EH%PwD!?ar;cdffUiX^zul zyE{q}SGg-RARs-qzvd1v$y_E#SM}=#hL0#@e?@3(>rB~XQWPXgQQMzrn*x61WxgcPMPAFsZ-n_sZ*S(t`t9k zQ#`X%rg&EB6gNof6lba{#ZTZA&+3#Z9!QJ&Ff>J(?HE5(oND4sN-KIe7uq;(`*7tiUGDW01;#SM}=#hLo*qtT^k#H2x>y#D zlqudLb&4A#b&509mEtFGiudT0DW0D?#SM}=#hL0#@e?@3^E+jV_e`DQ21%XbOm(IB z37q0RJ7tRZN}b{cNuAyV)l(#XHHjn|)KKxIt2qxjR-uE9i#kIee zHn(B*OP%5dNuAVB=Ql~gmT`7KCNAaZJOn%Ozc+xr& zj^h10Wr`0-o#F;bo#IS&rT7V);sZKmiVsYk;s!~b;!Jg=_z9fi13P7kpOiYq4U#&= znd(aM6F9|B>Xa!yD0PY(Bz1~2)s^BWaEcG=lqo(qb&4A#b&509mEtFGiVyCTDSmS5 z6gNof6lba{#ZTZAKlvXv#XI=d;JkmCbRGS>aUWI980Y;PvCSFoKUccEEY4l^#E!$DgU5;q*^ho<)yu&|@Jzz4(TW@B48NC7- zX=y&H+FeX7ez9$KV808|(~!YgIoauf+(1@tx7?g=S>3wjWd(9_Gcq$hA~z>JBZC^t z@MqFO&l#E2a;D#JB1cO`xHmX>CE80ePSC!4zA1hUMt&mr9_*ROxKjEwGCd6|Li z{OnxE>7JjKo}QT*phogCvK%KfBhBwmcmJbdd1cJ=D97>n($f7t+9x9AGyf29wlBk< z6)>drj|7`dUVQ$($#?Mn;q*%XzOXNiY9r8V!Ya{=#^B5FgxG#mPOpA{hM&rIyqrzD zr_o%_qQ}+rSVfP`q&-8AztZ|?KBujLD!GLoPo}D@ zG_C*4quZ#-wr;duLyrbev!2gx3pwS~|MS}}axQWHsqMkrPh12^>YTb z6|@yQUJGL9oY#!u#t zp(vTC5AGbeV{M^zGZzoiK5Jgx=!%TZExxY%s6_2ns+WMyov!^S_u zPP?w-Sx?dZl)H;3IK|_fl5x(=+SqiE^er)3U*Y_h?@H5(s1*rpw~)yOZDh>%B7K}m{?mIrOn{zAhqBX zB*paClnl0zSUfS@9Gn{rjtt(=&8e8*5N)ohUobjYlQ?WA7z~EPbtMxf)&#Gws~bDo zJQusqRKK@LE5(z7L32QG4DT*fsJNuGW>m0|149i@B8GRHO0hrQvq=g2O{1o~Hx|3F zJAiQ|G=K|&RHmpXXoePPY6>ohHncPbTWgvZ28)AJFKnU~lkY9zy;MV4a701XsJX$@ zgX4-vo^{p)s?i&V)pfVq1fts`gTrGpVfI~FP&Lmg7ax+@nOH7iU;A=q+IaEGxnZF8 zyfE;tgmU1k8=^szD8ZVtv7@go8#}3H@&%J>PCtG0wWpVrxbqyJA5(^=(o7=tFI;D) zI9$27Inr2D8m6b>i6iXcUwQ4kk+JciJ+FN6XDEN=wG`cAt|B2%xF4UT6EtS3g*$>i zaQVb>R8&yqttGsJ4v#riY zJax4BDE`dlX&6CkLPS4|r{n$52cnN7Hi*WG%0qwp@jf(0qIE6J zk?~6=jyF>~ar_91Hywb+E;*;vRCA-|^l|KTFW_kBvv|dn0MB_8@6TuOO8fFwOgk!X zrI^+J=k`eZ_N^+~&8c@Vhexb-KTD_CoAHiYjA5r735U8pZvXPyp^$B@8>(VB(HWthi`}zJKTFlhkHvq++zRNTj9Fbq%_@knX(%+!wzq4ZGaz@VVDqJf*9(A6F|pPMouzJz+&#YgA{M)8nc=a$P8>TkXLnvF($Vo9!d?#0}Er8rtw`%Xp*Q-Qg-}-oOHMA;T%5;AES90VnHJ zT6Yhnnb*3q+Yj31xa3tJGn}khF|yW`B;tfA{&Su}J*GV#Vl(XDf88V7`iIgZx7ey(t3QRgkm#Ffd!+Y?2%q0MM0 z&&hfq*3ccUEE>8inRs`i=+;1yHS~vA@n>B*Ry<(HQ|Vab280^wMeAOj&$)6UISV8iVRDSz<;rpL zXH@56kf%6V)wG^Nnv?mGk%QSW)Kgzhs_qeLz*PGxsy*Au+8L|%=SB|6YWF2o_Y2j1 z56C(-EtpCD3(&QFdfraY?&@R`-N^VHb0yIUd}lN%-s+|$BzUV2-$AS04e&%%J_5U?B2R!{_v!3s*e`3}Lcqtx3- zb2mcXM!LH(!`sMkH!k)zGTn_i-bTO|q&K!}yp3+Y;k2>P+sO5q4mWxm`R+!ux6#W- z7jc~>-bO#4c~5gMMLXI3edbN@W^c~`-)O4s7H?y)Z!&GH@-_;54-mG_+Zf|}j5hA~ zHVWO1P2NV4yYaZUG1lGK>TQ(x=<5^bC*H<5w{N?=jS0STYG=1O%uwoP&7%qGX;!oU z*`1LA*_+IGy{JBHR(buqX5>60kD7t!)6Bn5lb0DVb-3@qW(4m18}$#g&s8sl+S}=6 zT5?k;`)r@lz4ef_KE+*k6D8+%)26q&D!#fpwwgQCbj1C3D0f&N8nES+O!t78=^oQF zUElUGjr*uq-hz`C-vc*gJ5JwAX_u+Zf6tpYxsLW_8{L1;y5-(x{@w28*5&=Gs~lgi zhup1IymR17)KmXGN4e-pJKfEXcyrKRce8DIzeSF3f;qqN-}49FcZRq5N8T*`g}e9N zo1DOK3ae?;jVOJ)w1xJVR^9Dlim^d~>DWT*|LlyriVC(hSHgLs#@^08PzRbe=ti9`y-=xw0Ntsv_02mqO-U+OLXK zHdIBTVUn9jr^84~eGSz_>-4VKTvHeE)@aZ*4YW$_oI7*YG+LuK9n+!_nGDxODoiDm z=#+BatkBxPK(BWKAJAurw9Iw%>|d7|*q>I=JFtK@e3{Lef&OU){qBA8$q&~*`Q*>d zBW=`4ivv3YJLtcift~*GfoB5G1&TjR8{RkYZra%1?*DxQ&zjw)zC-3I?X=$JCGf1b z(Z{^_uMa#!uci%u&MSnwMNFN67uwg@=lE-UmWsaEzQ!-q$7jFfKJHB3$1gByQ{$H# z$LGHE8lR^cceS6HFEHvazmHxVcgYO@0(~?!ez~Lm^5@#rn8Y(*aMWLJK7LjD_~noK zE08_@YgJFKeK*n{d9BxLKB^L7KbmT`%s!{mPV);BjtpYOC;R1 zknY`>-%{;_!{+Rh?h6|eVjfUNABEs`4nj*<6b7~vv7X;m>minfe1@)0C zbKi)I(v2$7<|$QG(RM92)JK}kT?6Kp0jFqTLtUh(uA%6hNYkR`hQ=a3*~Q&4%?%B; zO+|E09f?*nH$?fS5b85`nY!B0qO>@xHtO9}LlH5dXxF7UFo9}pURqyK7cnbzM!l4J zX%E>7G2Nv@cl*SLZbr<5r6wmu^H6<5JQE`IRbC%V^Wo~+ ziUm!v`7-;$l`YY5WkYRCotG-@2Ja;cwT-)a9E#-pS_(izZI#KprU+HcuiW=(RSP0b z7e{DLIj|F)x{4*UW?dSaPcNCwJvJ1`#)_(9hvqHPWYU&$xUM3)C=&HP1<{8XD`l2O zq7Ct^XrEFhX(kkxcu8ZbGM{k5jkPV_s9U2o%@NNXO(v%+>o0N#Fw;wWHNKAPf?z^d zOzlk-iz8mzPrq<>aO#<72G1y*P&hU?rp|nsnnQiihJdvF^$oN=13(aFztzwX`IT&mT+}6a$R`(jHOPvwxMznvaMZ= z$MN)*IN>__9OzWLY1+`(7>?9e(1cMQBs~xzO?qU=F`UOSNcLO{yLY^yp&8d9``u%P z6)fv`>CK>*qByS7AzvKNz2i}MakEJV7}lCRIzEQo3j!EZLU*aOcKl(F>pA4LY>pqU z;du}V)q8_=$LJjz%>9GtNc(}9;MPZ$n1cr$dFYm%W~ZiV35O(p@N?ggVm>uFM164I z!OSs-jACA>D)Tbld!ZwCvbO+ljHcO^`j(~$mG$2I(8cy|ujCs0{c=9pyM=Cf!&_wR zIBO?;V%yf960{>i5l?^5Cb8<1zT;~X7<+#sz?nXE>equKX3uY_Z*K99W@E;+xLd_H z6_*x{9Y4}j&4nSyaj)Fct8Xb?rCpNm8Sm;_N)gIS}@qP-3tB>Vv zx@_q#7tpieXYe*%{B@TadN%qT-iE%C^@T!znDr$>-^uzq)=%Qs*IC~x^gpxyn$UA7 zWTrpwvF={aqjkE)-_?%_eJbnb3qG@e53~NUC&%;~Sody2;O~xz`6lZF=+!LlHyHG~ zh4m3a-^+T4b#r^XS>9p&8ln5>lB5||o6t{YeUs47WPO*=XS4p6(63{iFGxF>pS7&F z(W_a4?lb+F1nZkvhcAA?`YzTdGyg}{k-GV;=h0PLGp>C1OCbIRllB#|9%TJ0=4Y|q z#`*}>uVsBJ>&V+xtiQ#2A@e_AJ)bRu{{Niy5v;r43Q?IOtcO?+ay=ihevQyGY1^GI zq4#Bd7waLe=Tz1y6z&3jEbAem8^|BaO1DVt$uGW7zz#osA(?FPd*AW4+vWGZ@Jgb) z-^nG>F{_EY{4qDg^|NVQJ)QsgG{_Q;kh4hdMUlgT??M_#PgeVP6n&+l->K;LD*8r6 ze@M|ERrDtn{V7H7@YB*4crUfyW9hw=PsozKd3Lmq-&m8Di=REq6P|dDa!B%#K3dt&v;J@Ik1KaYt=qy4^)$|XiboE3X# zbJTlLr|EyJm+kj)d$GK-YK>=!vbW>1+}n0#W2gMwEgjJ6kJX?x!KdjRp5SV&$4-Bf zo*c){AI3gm188&!*L@N{?~98F2_N7nF$}Gll>u-_<$FlKI@|L zDYL>CoqO(O(=HERKBb(lB6xqsbP255JsGFZ z6EutTp|o=0qHuLZO|3bG59I^7IUO)>Vaxb^4DZ9xm$PpE6wxfuZ)TnTY|~w!uVfwP zmvk64e_H8${HeFpdANH<{B=uT$vW!U!1b)RcypU4>cO8Tg5S^lBNlJYalo5Dl{5?Z z*O-6SlimK9f65p93zly8^FLTeJqNj-Ll%FQRS(Wz!9T!nq3#_5#6cfS=PPE(<^9m# zWW7M>&+_(Ip)X^8lF)O_M9^}H(BI^3bGw^a(C%igXMxa%aXrg~9_15sbN{GWO@aDESvn;px5N#v=_X++g<{wb_rv(21^FLMi-wXaA^Y2@{ z9iJ@r4dOG5Px;|XnLon?U&Z`5*3FAu|M`O7%>2a`Z^vhu;Qz?{3WYc4+h&pdH|N`C zF)tx{ApYA0Kia)R&T)1q`~kr?GyjId9~Jyl%zvoxd3>Bk|36^f+?{I{Q!GRe^naA# zC(u1!W+_tm>4G;ms+q;y$ZHl^|0==5kKeR-dw$;#JpA~M!Uy>Hgz>_UeOWjCvFk4t zJp4FK;mr-5WDAC1X`{8r}su`c6TDEQsXkF$8Y{;=RbX1+?{mkA#IU!m|D1wYxnXO`|3 zRru|KU&j0ng+CzprKISB^Gbz z&kn)EkFO~F5y8WcA1VAGJ|1Jd@Z$*9Wxj<34?j+`cst+b2_Al&ukcF+4?iwf_{Rkg zKR#{oc06AdJo5Qh7H{_-?^lQq{P;JEx9ji8$9wR(d?C0W>oR}J1rI+?SNO2t(SP%A zYM4dVzfAD(;|hh}D0uksA%)*Ac=&OL!XFSk{P>2#9~C_O_@Tn*@$nn+pThC)#k!2o zg@T74ue5l3ejgG%{P;tK-!FLh@iz*8Oz`ky4j-qbABVDz@xqTIEIveef%nId;Niz< z3O`Tq@Z)@izf+qAAWpD;kOGOe%zt(2Lum4zM=3(1s`TV zeyH%pydUF*AJ1Z4=Kl)8!;g0>{5HYEkIyOm+k%H5|D^ErXDsf5{=<(stjqivDtP#D zgu;ge4?j**_N{|GMDe$2TqBu0OzE`XHY0 zV;<`=o&|zO|3@i&x!~c)=?WhfJp5Rt@XG`bKdw;tje>_CA5!@3f`=b>DEtAz-^h9V zhQjx8{~|B``3rvh8tc-JRf2~fuT%I9f`=a;R`}h5haZ2b@P`EtKmN($?R?90|1K~- zUidMGb(wEN1rI-tQ20v(4?kXQ@wQ(U3m*A=gT>qZ|EA#K$M0IaUH>zJhaaD}c)R{1 zf`=cEDtv(c49+a@FZ!Ryx{POm;Nizn3STaG_;I?zhXoHmRw?{4!NZR$6n>-N;m3y* ze!Jkm&3@dW@c&Qn@MAjPz##oNopr6?_)Hc&@_CBI+x@>% z@bKe8i?`>iP4MvJN{hGa-zIqYal69r7d-lZK;e%F9)3Kk@Bwq9CoPC4{FujjJO2tE zejKIn<${MFrz?C|@bF`m!Y>p2o9xFG3cpkE@Z--d-k#q)zR?u%fgev|UFKVv;Ni#f z6uwUI@Z(a2UoUw0@jiTLce3KBe&c1P?#{QsMtDc=$1EkjX0VdZQiBQ&>kl zkB& z2Tx9n5BxZWb?M)W1rI;YQ}`Ca<9>jp79XN6AfML@9`^&>r|??@KbWtBJf-lz6+G?- zc+cYPc%}_Wj1TSy$YNdQ&({Qx`vD3q{w!;}=L#P81DtR1c6?d|kMCEODf|Y(qyHNf zew*NNKfrc{-!J%P{$AmL!XFX*Q_LS#_`oTN@rNJtSeNlH5Ip=iO5w`|U&Z+|UEyyL zJp8!M;?J_?_kiHx$F~&TA50uC{Fu+W^y4_e!;c|_pCfqqah}D8oVXub1P?zhRrvLS zhac}#_+5gBA78b2JD%?d9{K#9#fO}D|I@!l8?@l~4?p%~UB+{y;NizYiw{wKI9|;a zJp33|_*TKA|H~A9gW%!EjS9a_@bKeyh2JlD`0;?k9}ztKcvRs7r<&-;;}1XPvEI(V zg1?phI7;EG1rI+qS-hP;+XW9lzNGMn1P?#{MdAAmO&l-$IFxmnZ<7R%^VN{Whp0;A z+Z@5;e083}w+J5Rt4kIBdxFRL>Q;-l9+Zb(z9%5IoLTH!A!#!Q*^&yTb1mJp6b-;g1L& zemtu1fr7;Nf1mxB$9g*Lw&!=I;NizBEZ&~qje>_CA659hf`=b}t?+*nJp7nB+#8qa zzuli9tf!HlK@a$GsKtj!haV>i9)1id{2al_gcK&{~rn-`MlNQ?f(B< z@bKg77H`-8zTols@dJyu>kpnr!J-B6gdYo7m-$mBc=W$q;pYk-ehe#otKi|sWeUGR z@bKeCh2JK4_;I_!?-xA$ctGKg2!1#F@uH$ z$7Kq?LGbY7Mup!dc=&OB3;m3UzZ|B=V!NZS-72a2rI9~WMlXaOtMS_PPCtJK7&&vgmeEx>T z+x>46Jp9;Z@pk?93m$%a(Bkd-_X-|<+^_J51dsk7QF#B@#CXDw0oG+agMx=23lzRg z@bF`~!p{{v{1{gFR>8xM%M^Zt;D_aV9-Vm#r;64s?3XA2&F zoUiaJ1rI;2SNJCc4?k|Pcst+r2p)dir|<^_4?iAO_+BN6@qr&tVO_@O48bFxCtJMT z|0@I!KUP}2JzqBn9)4`Ic)R}1f`=csDg0i+qyPIA{*d6|$0G{wAD0+U_%XnGJO2tE zek@S^@bKf~7H`k*5y8WcA1VBxGZNziKaOBs z=I8l>hacxCe52su#}ag+Ho zn04eE{5aC$?fRz(9)3L6;_diE1rI;AD*Rf(qyHNeezV}=$88F~SMc!TeuY0Ic=+*% z!u!um%uo0+z`BfoQ1I|$fx?#w{#N#5xx(Khc=+*7i?`=@zu@7=-zfYs!NZR^UytXT zU4J3#$T#?LlEPmmc-#*#$KvgLYZN^02WV0FHG;?e0P7Wghv0EPz$+GSkM}LXkx%$04kn@!I{FD0ujBlEsIp48AY8Oz`mI9EEQbJp9q@@W|&^EZ*+_?*$J(zHjk%{aI#%7UU27n9I7%pHjiYk7Wu!Tkz=r zT!oJc9)4_9__czEA2%rcX2HXc+Z2AU;Ni#p3V%rO@Z%AM_n(~@|K04z0P8aT=LjBt zyu{*7Q^@BHf`=a;R`}h5haZ2b@E-^se)NUBaY;W8WF7g2^VK01Z&uO&iGs)Z>Li7~ zOz=2goulw81dsF8yDi?1=c9th`Q8sL-mIekFAE;$tG}{%yZ-kCzdM&IqvidO`_k_H zanKY`M?7)98f0DOPpRP1|1yQ2EqI)-&Qi@zb<(A@u0$gEO_|QH#K>_ z4P-rycANWo;Kv~fKT+`T<0OTz5xd`%A5{2K!NZSb3O`%$@Z(&Cj|v`sY*qNRf`=bB zDEwx@!;jk(ey`xudwOx)ukhWbdHWGh__06h>9pIP-?@T^9~UV69fF4+?^F0^1P?#% zQTX2p9)3J%@gW)m^7&)I!;ijmy*QZh+WbJ)5g+(*h{8`7Jp6dM#oO_$6+H6!I*Yga zbEn|p$NMebu79iG;m4;f-md>`!NZS-6#kgt(SQGR3M4Huo`YCNJmJTn!j}pjek@b? z*@A~3=PG4=Vh}f`=b{Grc&-d>h3&;sZaPVexi6 zFA_ZR`ErZ5`(H13`0)mdx9h)G@bKgP7H`+TTk!DXUWI>K@aX>`g+C^E_|bn}@^}tn z9r1)8g9=|Nc=)kQ;b#jTew?fDQNhEHtqQ+Z@aM1}Hz@pTf`=b}Yw`B{2G956hWNmb zV_27dyjbw?<2;3L6FmI5M&Tb3JpA~C#oPJzqTu1jJqrIj!NZRS6+UlPVtnAolUSGW zDG@yK`3#G<`+tex;m4~j-kz_;f`=b(uz0)v#{>^QZdUl+f=B=ND*W4mhaV3q{4v49 zkNyk1ILqVVAl8we@MBQnO9c- zUX&P5ECk&4?kX}@QVZwKQ>ytoo}lI4?nI^_(uc}KR%)G2Lum4zGd-t zJUxB`LkE> z@Z+x){%?YZA2TnHkJqk$BQzt{zmY~=eI20?*HEf4?kwjP9D!wSVuhJ$6*$4*MG6#;m6quUnh9P#jM`d}!KB3>o`kO+J zaDVs& z!S7|hUhv4jy9EENd1IyJe!=tQLFZw?5B6~9Nx{!y9ls-n_;e3=J6;t0Lgs%V>c4^e z|GMCpFpu90L;agL80L3@&0>lfX`R`ir5o$u{}0b^Kf!PHa0ht`{t(CKbiu#I{7g~* za_+bJePOepKks>)&eeji;QFr>{88qc1b-Uy%LV^e=2r>+29D1L!GFv={EG3eX6`w` z<9D9-i2DDVkDmtwKY-)#rrMnMF~Oh5{qM%( zMtt7l`bV&ic#dR#yx{Y>-b)3K-(k91@c12X{O%~~|93CU&T7Gjxc>E`{`Ytuza#i- zn15XG-(&u1!M8DgK=9o-4sQv57xVBF`j6j@`>WvHq@%HYD(W}CKW&y=o@c~A#2kLF z4fU6@UdBB1MLaJvgkH}4WkPRe{%WD;Fn_JkM{wL03!UFiotuT;i}|~S-h=b=pN0M@ z>yHW@zbpA8q2qS}pBMUaFPzRkq2qTq|3m04Jimv8{vGbmUxa=#>khvn{`Ya*@`R4_ z^^=5-^MKQYj^BwKFZ33U=M?LZ(BVh?4jtOv$K(1~ z@E>qJ0Zw@E<2Y`8guWQQ6MBE<=Lr2q9#@snzs~J83cZ2nahcFx=lxJIT z<9tx)gSbDB3;jR2|4*}Ss-4JvF)yzP{sNA}uPvUt=$87s;CJ)R>};=6#JMl`XSmSs z@-SzD(ED(^=Lmf!_x~E9pUHZI(9=0SJPq#W*+Op9yyWw`iGw{Z9FL_QWZtkg?-Vv& zU)NkQpI)1z-s?iFMI*Hph0T#A%}!xeMRSEyIKQdMDU3FF8}8n!$o!TC;hOsD24dXx ziuv=Sk;R0W!YoBA>K8;z(YRJyQy)PQYR@UGY^bY?)KgRS4b73l=@-r(ne0LbhnO`2&69B5y}8dNE}=&71+A z>vkoz2eGS_2dpUmFd z7kbPioX6f)d)EBXjQSc8X1Bo>Km*CNA&2 z#GYk&^Z7nm{~Pl>ax9lL{WqbI{lAVhS*Iy-7q{On$85zH$=1@YWbJR__K|0%eN&Ze z|3=bGo#-d6y34n2@?OtJ0oKtzURRNxto+-zc?CvsIlQ18Uhm=Z*pJto+p(7TigHjN zr4^&e{LSa`r2zR=499tx^knh-Ns{=PV=T%euF2XqP0ir;$C{+2r8hmy`;#nhazc8S fBxeaUPMS>c1 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..2f8122d081347442dcbdec7de7eaebe530988de0 GIT binary patch literal 37344 zcmd^Id6-niwXfSfJ>9ba!>|itM+I4Dm|-=5HXt$>6h%#pOPX1FW;)DtkG;TXh_oUG zf*M?s_!M8jd>Tzcpr=MH&a{&?RM zcHgRB{p!>?zpA^{z0+=4x#n!2<0wv!Iztsoj4HL~#zH=#vk^5$jaC;o?f7-mwZGp3 z(2gg%jvYJJ*0i&1$}}i8?O6G4LtoQP0c1mAPa%7MA-jL8Zl!uFOvZQ3zlL9j^IxX6>5itI7kv{ zPM>q|>DPl#zZ=-GZ8P}z{I*{76w(_%L}7 z4(#~GPHkw!gWBp%)xH85iMxO};!)KO)De#!%-7Ac3>`6so+~osJck}F+wsDV@9y|> zsj0yZ`${>yRr};@eF9^2M%*wNHr!w!*}-`)*^%NcJF$kc?7qRv?)R1*Dc-UZYbeX^ zAH3{k-m)XbTXtd%W!cLHFMGgScBFXAPOPCUdtmUgmwU^O6mQvyHI!v9AH3{AZ`qOJ zEjzJ>vh2aZ%O3KU9VyV{ov4*nj6@!<((pz?< zc*{<#p)7ml;AOA!mK`bHvJ-14%U(5j*{i)}M~b)X#2U)7R}WtHVcxPM#anh_4Q1Jf z4PN%)-m)XbTXtd%W!Z-hUiJ~*vLnS?c47@>*+&ds_8M>5k>V{ov4*njHG`LZq_^xy z@s^!fLs|BbgO|P5TXv*)%TBDJEPL(XWgq1&J5s!5C)QAwebnG(AMGtWQoLm+)=-vx z^x$P5<1ITvg{`o%U<%ON%MlFd6{(= z6y9xXnrmJw&II%ut}i|Vm;01*WlH5vhR*}=`4fOs;Z4;u;PYYlbizlbi2&RN+#eZ! zuEJ6NvOsw-R8cvKxK5xp6!7^RFs&0>@ryE6aJ?qM*W^jTs*18ubtqU}SzT2btgIXs z3{_PJ%F7L-x~eP?fX)K`a!BwUD2JZQ{eF}IQlQLVD*1dq^e|LeKDq+jP@y1xI|^{q zZtS?qKwx-qSb3uHU4#1hf=cvmc4-;y{#m29m~ zq}H5u{)(t6MVGH?h_0KGjxPJ)C5?5RYLi;goJb@y;nq~FITH&jmCiJ0;;rF$qAQ+= zg*PVSZDDr{)8dKDqG)DD*jQhlZJ*T-Sr<#s3WGgE?CMHsAPYdlf@mguX?S}0W0k78 zC7H^^6CJa{@uIlGl#oBS5%}igC9OlP<;yyCnx)P~Ou zFAYzd(l+DL@XYYshUsUVF@G^05R_trxNT3S!qehQ=PZsdId^e<=1lF0W)<_MO^Zgm z8|N>G&zPPM6rz}Z*_1Xg9}iyvokhEm5lv@X($QE?e9<(kkqNp$pB1($3)(T^is|6% z$K67l%ORRbN(Ne5oO#r;bnW~BYZnYyyKunTMFZBJPPL?aY3CZ|Fw3RB!K0ohhReKZ zU{&4fSv$9SR?n@T^>eFd1>NddL$~_8ily~w^w6)-L%&83{gyPcfG+)e=-23>U!#Y9 zjUM_ndg#~aq2FBAZ*K)(f`;^YyPBqLeslG#d=@UW^o5+y2iJpeRaRy;A-(Zy=+uj_ z!qL~N2AMJ&5nlkS4RYE%$d;7_;0Q>_^u@>tS)3a`nWx``*+8f~^dORq=^*B{HUIe4 zkPSZ0<+AZ`eWHRd=gSk|T1o|fk}sdI1ULWfra1#P&I-$ z6<8Ni!IL4ckG@Qza8-KD_Kl>+w` zgL>NBX1TN#@S~%slf!4Hq+G%!J-A&NKf*!v!YpT%Tg*SQXroXFjaqV&>PGS)qat z*Dw=yge7@q zpN0#}=fLJhW}c*i?U1hmOqD-_aJV8*HRv}>qR$I7gl50RX3tc?C-P=rLO3GLzETqX zwm|hcAb7GbTn_$)U`+(RAAxV3T>_w1#!+|&rb3^a1&GP+=>@=K_kI$x!;$b>#oIrH zGsFnYSG0c2k(*>;~E{Q<&|10Sb4RLY*$`F@<_vxZf1! z=)!(eXmnuNNqx-}=4#*iOkuvW9Qt_{4>K@zgIB-+jl^uloq9yZSM0%fjjDSwOZj^+ zavG8QFz^}}`L|&3%0p;FpMfy~J^qLuhB}R|V|0|N#h&yOsyNd@+~gxxewoheiBk0m z?9*ho7qUC@+3Hi!5xuHbed=fk*xFah^#QS5AJfbAemfdFH&-c`Ab?tAjQK6|IEB2`sg;lu+p$2=^w!@@FK@s%9*#?e;&!JBk!nH$t4EzVVaWs-uL8vY!$&#(;Z;@W z1)3f)EN^iUbWlS@XphB_?66X`qkxDON7)vs+tGE-nG;NCr%k}XBjZ1_d;;1Z6Hxw; z2^swx3yrO!!b?^-twRDCti;p7f^^moBKs7cFdXN-;lpsD5%LPl_1Sc)KAvdp%C^Po zdlxN;E|@nPRuZzkvpW*m`j&Vmtu&=8-csMu+S;G8kXz%5MqQm@lfj}w|E6fYK66!1 zEN$9CbNuh3wQJX0s1z-L;Q9zIf;4aJZLDj>aC8e;3jz1jnKrn}o(-Qw5rC@?1*9$3 z4z(bdSr}=HwIPtBFn)y|$8X>5&S>2FuL?Z|TQuXZeIfLu zrjH4|iFLY-p!XK&BL&^V`iKHu8}_hnIWri#<;=f;UUPiDA157rH^Vf>43md4VEqXi zrhh@G|61MuwbqYw5*+_9@$NAg-ABC;>N}2M`hPU4WAuSzQ{hMep&pMi$2m;LNk7ix z%yCYFVK0Opf7~|?PI}R3vb{Z;QPI_Fqp*D57VXKTRJ66TIi65m*-SK%?Ou^somi1r zg$vYav-S?__v!f6F=$4V|3DbaK%tcSN`+f_7*Cm&d3*WENm8=`Q^h^10dT?R(9 zr8yldWlVJ?6CGjwl})7M9f?>QF2idotn#Na%i7vf{d!I&Vrg8+#x-nJ-&cgHXTC)BIKOFLvsVl+743LPV+;9+D^cB|sp;i<|1ZopF$c;=#?tR#|! z5sxL>Okdbdw7sjjBb^@?tc$j0Q_U+EYa zrY+5wm2Dld^!YIuI}&id>Td2`vu0g>+)7{Tn5l$MQ9#C?=C%d}qZUi!q=gyW-JIGG zOPNa`xPq}J%+;|}vM?w5Pbi!+^BWq?ltEK?c@ypF${H;;rQ(^G**DTSqgxYeby%y- zq<2+a>3twvE?|wvsbJ-@8a-^(@zgCteamqCp^0wFZy7U$tGe; zbwha41!$_Zb17V_&R#GtJi8-28)og&R%kW59fqrQ!|a|^G81cs`3*HG*r!x$Pd3_~ zid`99)pWIrb|qUk@U-eTG;?WIfM?xsm8jbFEKc_HL}Q6&7-yJ1C65#X>=$Orz-)AH z2|El7105{liKwf_#un^>W&-6$kxb*U$=bJICjcs%He;%1zj41PaN1dbhuYAg3nxWs zKa`$e`M#qd&Bizg4YRbZ`KqpXM`uR0cO{!)+V&*V?qS1TM6)Wq7}fUz98;0I(Aw>oMEkwV5i5UG;D@Fq z&6{9#jOM_Ak7JqHKM)i*5$nZ62ONzS%mZ$`t(Oj=dQRw5pgtL4h^7Uorekf5cxZwXAG_H9)C#+VeXeYQeK*@vI6dZ%z4nYQ z?%S$qQ)ce*0MnhaPk;HOeOyw0NWIaG$_3Y|Ux-^g#G zGA#P&)B)d!UqWTZw-Vkd@Xrz6D{y=whIV!legbXr_Yo1_FYvbrKPYfqV?_R&gzGzb z$WI~sh`^T-jtl#kn12P~M-80EuOi$$exx;H;M_*|c-UgnE0?gv*RRl@X##(q@Cf1f zIuWK{624yG#|X~}d?GATp#41pUr2bLz%L~Hb%7@dr-dlR<8u??IoM(f>u;sLMED-U zdB1p(@IJzq5dTfWdFs{>UIptl=zk4tG3kX(*v=w6O!(!xR;hCc&k;V2@J_<_6VCJY z2Etz_ypH%^AiRcl8TS7L!lx0gSA(I=8-zy)50jmD2wyL7d`gRPI9YN0L83D|M6nmtU+Sa)lorM3hQ?^K7SImESCMm%#N}dxyWn@a;P<%T`1r4s z{rxVu%X(?isoFYSHVp1WYPZPW`MKREm%hF=*DbDfh3n#?iz#SD*M88Otf8}XiJF2n zaVcyr?Mi#$Rc9{S`bS;3;FF#dSuFA%Yx4GFO(CxS7cqra{p$v5SFDJ23ti-+uvz3~ z|2pa~e}QIMEsUE>?Z9ox+kS1$_16H#^8`2hd4gLP`K$1vUB(KnAWA>?^4Gp4+vYDG zaiOEsrE`Jca)*#7Ky*b5KE=2CVpXB&KEL>$P24^f-5`74v#(mScKNb3(Y0rvec{TB zq8BY&4$BATjZl^DNx=<7yJ}DN#1g6}3(t?*8EWlH!pc{>z7B_52~ZJkHd{M4MBAI= zU3~mLg)(?KfTys{bROgLFymVY$5*#8F@7E4@S3|$jBg{HuP@;+im#%pqws6fn7R#J zA^v^~-$ppwxt;9XYVj9ae14Ui`7aUwUW<>{INUG3T8@eNuMq!$fwezNA05g#AIvEq=_>>XT9D#2p{$hb2 zCHw+`Z>BQaWBd4y6s8WruZHU?Ox%w77t#efzBh(Rj{B_^j(;Y>I)B!}ZJi$x{ca%p zk6ZkRW#{{Xe?9SEbK#Gs_}Kq@i2pvq(SLg!I|cs$@w+X)?ayBY|5wC!NIz+R0^!&U zr&Jq0u!l6+;zyv&y5aRUCgyh#f2|9Dr{HfR{v8(Ij`!z+&+-1s;zyu=_6M&6F|j`! zZ!h68-d%#v@#1wICfr2e!}gyR{JrG=b1r=Irf9(*j&}s@uh`6v_k)D9{~YgS7T@;g z7lP06zGd-k`#~Ciw$Jfa6E5RjB=}EJyh~m9R|!7HdxOQd{rQ&QbG+ZP_;$P>rvBM~ zj<=m~spmC<&+%@x__qBA1z*3g0%P=57yc2!=Xn2a@$Goeq8l0ZpW|IkxYYlk;B&k` zwfMIEw*{Z${hP(NT{&2h( z5iZBKOYk|~D=ofl|8BvbK)T%H!vC4zbG*N^_;$RF@InwK_MhWjNVwGVNx|oMU$*$R z{a*?`$9ve~N1%T`UX7*&3if9q#XEs;>CeT2&+)cceA}M~1fS#mip976nXliCE9k@V zE+<@$@1=sz@kTAaZGWfWUrzDva^b%s_#E$#ExsLZm=^9>PmXsA;Zn~p3qHsDb&GG? z|E}P3yg#z|cDz1XYGHpiQ@laKr9UeKpW{8>;@kdwR`5CA-4@^W=M-ARV1GE?IfTpc zH7~Ok<^#ujuEn?QUnT7Crg*P$;Xfw$9PjfM-;Q^F;1Io>k}m-=rLe2({%7T@+~B)qPONsjMi!lnHM zg3s|Tw)hdS$H%Jx_X$47 z`;f)AB2v0jPaBG;do~eF7;0fKF8Z@@oj&O2|mx~>anI@Y5!Eh*&mK~ zy2ZEcUo7~O=sMt17yf4ipX2?!#kci;Q}8+7w=BNx&qjRE1&RIVc()QR@M zKLYl6KEERPODNv&y6}h5g9-MB<2`|J=})uZbG+>q-}dJZg3s~(&Eng7*22ronAjhV zcO2p9PXs<3?+U@coZ@YA;a@NK9Pcd_-}dJEq(<2;&|8L|1u5|`@``@372|q z5`2z#v&D~qJ+^HOFi!u ze2(`ai*MV1N$@$|?^t|0-uDFma*9_?F@Bc8#^x^}+y^)=8FIXUo>sbG&;jzHR?&g3s|jVeuo-Kgauq;P0k*|LDS>F%7*h_|Ne!BwXr$jo@>< zTP=PB?6E(U)6sgtKF2$baB06@@HyUj7C!>^*#3IKKS1%uT=;thpX2?C#kci;TktvF zzgc|SpKE7;bC7sGaJ)AYF5|sV@HyTuS^Nmt<9J^c{6m%4n^K2d_~U1qdiICookFPkG!_TX-Yn@9`UemQ^$#@jEdPNOW7A$A4j9MYkRLjU=M#8k#%5j04A1Z;r zsTBB&BydjP`^lf11Rf;(R)JGd-7WBU$o@kDf0pnA0-qW*z$*g3jqpPPKbQRZy}KR`|?Z*lHgVgV2f$t&yB7uL2{6C9u+)$UgMT_8nllTe2 z=lOS|;Qs`7WJq@iev^UKUcsl^vHZ^mVm1163Gw;4IqOgvG8Nwt_B)CHvar92{C`#O zdx`(H;O{0e9MTo55!yxkO2XNnFVgsq75x3gKS}TdWPhgMA0+;2!QVpuT`c%-68|HD zpCkQ0D)>i;pBDVHiN8hg-y!~X!QVvw-!Aw^iT{w`UrFUB1)tw*eqQja$)E2FKELmL zNbo;E`X3g2eh<2wj(Iig5qv%AAhu(I{|edR_g+~42=T_y__IDABAnlQVSEFP zOOxO?6QAElV}6GC9})Z+#Q&(kYe=_^0;l0s*9rV@WdCM?SJC{uQ{eo*$9)1nh4g<& z;Qvj!JtgohG=E+Z_&Dhc6>VA1+eo)z0_W@X69oQe(&sdR zPo=o#3H%B^UJ3jZ!p{@6y(=@fW5^_vxVoa|pG@W%=Nl)z_GdAGnho(BZJ zn97d`d^we$5jg&x38sSr=lA`7Ch)UKhc^U%5{(zXH^t-l62)~?@Q;w45KVaIH_-eU zE$|fYcLEm1Z^L|dlpzm|*s88I~P#$%#xE=na$LD#m$TCyGRa|-QA;OKmFOG_%Y5op+$pj2}L zeiEPv!=G>FCio}*b*;(n?il<^K^^?ubF2>jG9Lb#9bTBHMzK!#i+22hh5u^`g8|fr zb!B@I%JAP)F-~%FQQ>1moDz{dVlq8fnC<$>W?KszY)jKG|0Cm538!H=D_fh}HaDrPYV&yT5>oL+N#Gj%CoO@{=BZf(GPY0}&eg{9M z>8g+3t3v&7jHG_&048l>%eH0sU3d@Ql=^dVm`b(3eYt5dha1vXa`FDYl>fVS7Pm+L zQ3~n*m4Hc`*z#HGKS;+##4t&27ht9O@1y?5>sI(Tg60<~W&a;1n=;OqSDS{bxB=PW z{&~CIrG4!>(_jX*;|;gt?Jd-v>v_9`+H;w=+>XolK?X57e5ff=E!cltxFQwmW zCG^8%EVpM}OZAOi^-}+H=)i)nS>gFfw#PXk_g#S0{W!58@%#0r)PMX(LPe?eN67#E K+>o|XzyAe(#C%8q literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5fd9d2d53ce789f7c2a0bfe187aeefa004ea427e GIT binary patch literal 37784 zcmd^Id6-niwXg1;p6*#-hHU^rZ5LobW`-FSQ9v3H7<7z^8cAH*S$bwV%ydtB0bC-j zh(Z*DX!1;=Pt1E7jrvLQMNHg+F>y&qLO#vzOL&V0m%I@3T;7Wb@0_Z0Zdae_J9o(Y z{NsI7*nO*h^{Z3o{HpF&_fETcW!oyh&!;%~)ETN!VpOShw-)kIosFsqYP`Crb^B|r z*S)AMJ~O3e?*Sb_iQy_{Z9m}K=R5H1!O*iG1h;R!26TC0>n2nO(i=a6FBT#K`9Ug? z2dz8CZ-r{)Zfo@&xLG}WD7gK*H)}&Rk7}zss{I8r5_bZz=5f^x)SAZ+ICb+ZLx+u_ z=Zg&ao=1YHmCZHr!w+*}-`)*^%NcJF!Nx z?Ec})9`KeODc-UZYb47a7{2Uf-m)XbTXtfNWZBDxFMH5icBFXAPOOnEdvN%&mwU^O z6mQvyHIij7AHM7%Z`qOJEjzJBvh1PZ%O3WY9VyP9xj&sxKdY~aCM0nGVvS_kD~2z7rMK)z@s^!fBU$#!;mcm-Ejv=YWhd51mc45DvR8Y{juda%i8YdC zuO7baqr7EDinr{<8p*Pc8ounKy=6y=x9r3k$+C|gzU(#LvLnS?c4CcW*=vR`d#$(Z zNb#1PSR+~X+TqJS##?rzc*{<#ku3X|;mbbOTXv*)%TBD3Ec@8u%RbIqcBFXAPOOnE z`?%rDKHgh)quoww{r@s^!fBU$#k zV%djUft=_qJ5s!5C)P-oed6$CpX4n&QoLm+)<~9p((q-U>@7P|yk#fWNS1x_@MS;7 zTXv*)%TBD3Ec-FTmwk%2>`3vJomeAT_9?@ceX6(YNb#1PSR+~Xsl%83SZ~>p;w?L| zMzZY37Rz4prAhOGq_g5{xbMddi+`hsJ_LBHPzrgcIq0a3;ZuGb{^ zI&NyHs-i4h9S&7jR##PqDl12Y!d2D5@^Ztdt||)#p|fD191?s7%c1A;Kma9y6f6sr zN`Ai|Jq%ZtkFNkXR5*m+J_WdGS2wXT7#tlMRUWRWt*BONbgjRvth_u7os0^GlqwJU z1A#LA55h8S@Oze0KA*oV;Db7$ln-A-ukZx}p)fM7m(;OH$rqSVx`OJb!xr9e_xZsZ z5KR|Wi?I-cFK7U#o{hsc5C{gK?a*l{RIh}wY=h6`@Yx2RhXH#6KJP((hEL^FU}Ot? z9`Q0ZbXTQn^P`}TTBw-;pVJ`U51+>%|GZ)6q04+FUO%^u06nF9~m`7kOSLw{$+!+p={=J~35u4@YNS>EYbv7l_ZD*dhB4$dl<*Qp_Yo}#m%RauYrLj|OR4dw($y7Gd znU1$-;}NAcq!L{b_cry3WOiXJJ1b)BEzfn&9)zroXJ$tt4EOb=HIM_Kc|j~2`D7$A zGjesMYVSy;vx#KS>`0H8QY_ZrGJip0R%C!efG!tBD%DW+(4Py%IO9^8E^dYn z&usyR&jAmyNmEk<6^&;yk)CuaHxSvF$o58BA}czeh+$SIMz%`?w9 zWBwu-7xojk-Klh>KCxuZqQv5J79~zOMaw|*$mZ48bJQ~(nIWc`mrUyd+lk0!&{M1* zb%|wi9hq2sAhEFCYGk4;&}T=i%EHJo;j)?F=x5yGo6GST4@*W_TA6v&vUKhIA!`>5 zS$pb`wF`%=J&kHf_tMTa&taBJeX~bB&kC1G)6A;6)w6bP^{k#-J?rOI&kDNLvxaW< zj*6xAY4Omn#Y4Xq5B(Omuz)W8d+68Vpx62W zw$A21XFFNAu+tZgem`7)!c}0I*@X2bprMm5#0sCjHa5t#21NWptTxDud5|qD3&P=# zkeQ2+6Sg?FeAc1wz-%yF9)1)_#&iht+FD@J8pwv8k5tdO<-ZT;8ZOjP6gJ5Rp>;>!+{qr!9S&8?FW`M^HOF8 zRjAEj_G!4lgc}ugBQwF~28TJIVTWltN|yq&rN9lvU>H04BX=}eg?{IBbftzxM^~2u zKT`~9n=AYz2!uHo^2X2WG%RdxDFtpV1>RH)>W&`fjz+1_T~0@z)v)O3mQvuY#h|u{ zgRMvNSQR?#*t|o-!sZuBfp?Yy?=A)2QwqGd7}V3|cFUzLkT-hXuVKd}&3u}fAr*SW zVLqVYV&?CeS*Ak2aF}1yaDn+c%#blK;aL#8LpHrXqTyoZB4$GGr#Q?mV2^LQ2NhI|!Zs{A>GBNYzS zpx-Zvz97&rn*9-*U8+J)J7#}?a8#PzUlRSXK=nBwbfP~}4*rE<4FEVN{VZfhBjJ}7@BRy%A!;yR@g6cL{};3zHu#5_uQmC|M7_C?^tc7-Wa z`ldsn*A%LK=BHW|D6Q+v`R)SRPE%;`eH99KnnI&4>^6laU3kD0=IFv6Q)uzQGMD<6Da_Tr?K6e>zU9!* z_wXL%>dWVaQv+nsFnN$7}P#j8GfJOpg* zE9LrtSgw!h<$AvzkDdGU-ikTCc=6qJZG}=3)*5DgJoY7B%x|t+uY3#f`XX@KA*wsw6yK)e zq95wo-(Rc3(?M43Q!5IqfR92A_NvRxpfK(_$~VS0ZS=UR!00KX$N0vEYA3?Q%gL&$ z>I{IOpE?y7eR|cRsx_ce8R6heum&hFO1QzQ&~$~Hu+O(H zTq+c|`Kl19CM39K+|tR5;Rgyv6(|N6JU!0K`j-bJr>8X!%B@E z2Sl_u&bCP1j&JlWooqszF&P7oPWr;~$!LEFg*F*{|?~;q(1v^e9}|guKFXQ!bNkN+dh`a$WJJO$!&q7R+ntOC)of8hVnsrjA55 zqco*2(b3e?**TbUD!0ZJl*UHGCWA$V!A;S6Q})V%c*eAa=J?-*=bqbkfl{>Kg6lE3 z=+eGn6E3(w(k&W$(fv%e3$C&o;FBx@aOt6dbj7=&76dcPGF|b`R98G512_XX97J-- z1XzMRoHMhD{#OcRljR5AYMH@XzvX3O{N71uDZ& zgr5pGzw4h~7k&c`9Kx^gllbkw!#5tcfh)sLz!uE~#=aPSM$;#R-^4oIM$k7E=wk%k z!+K4Dt_^!wx11Rc-E!t5pw}Lq??*`o-_0;hFvH}b3|N1fhUp^+^`q7OqqTmNli(1f|F}J-JVUQ>Dd7IOfG|~shmrXZGCC;90U|WDF(SzAj}7g*{hQ6{c+5|sr4%G z(hk{@7#^&^!G8Ba^mU6~_(_bB1sOMsDG0bn3UC;uK=XXE}wb5Knd~{RAkP zGR~kMvF^V1o{Tean$wv}$2wDexqdTe2B~0X4LHY7ZWKt`(FaPT`nqreX5wI&wlt+y zcJ;(F=fz=gN#XgbzkO3%+gfK}OJ5e5xrR?$K<9z>u4VC83=)~fW0SRSnZp;FHbaIJxYU$0I}7qq8#;91n3wiL>G|XI9Rq1LBtU4G zgk9}d_9c3Hv#Pr<)ef_AAeG@B2Zs$i2~ARmR5TvOeRO!xUS^IpK)@Z1r}hxX3o|@s z{_!yt4)@|%ZjME<4Otv%-bbyGfn#G#-xY97Meagtw__6R*6tI;^vusrOPV*q>KM&_ zkB^0!IXDm$HyPiAM+P|9ESLw}MAs%dgcgo_`ecM5>YWfL2%QS_0R{E~Jg$H#+{`l@ zI9it)5)&hKn@i?0@vas;^1z9YT@>SQ=A3=5?0|hY2hXed^ymz_J)?{JwrX0qA0dV5 zr?3w==1ZRK-3HJ(w*f(|Ua{izNc}|}xnwqH4pj|vbGp=gZS%s$IrC;36mALi$_;FN zSHUXHrdr>W>QHzm+*;yqCE^E@zJFgfy7or@ic#f(H)aFHRFwFJrf?JbC;fwjvO0kG ztR+&wte6d|3E=H)i4?#)UXfsJ2CNtGlc^qFqtW;rD#NmcPG`e6@>{74i$6N`z&GOS zsLc2l!g~dN58;~xj!(wW&Q8LQp)LMKBjS4m{zt+O2prcMk^d&)`i>s*(+EE-@MVPK z0zW3^Uq<+c26pf(2{(@+Y3&#|w-Y`IwwUw^CT#JwFZ8Eg;4cs!B^+O4!u0QiUm@@# zgy#i51r{sN{%(PvO87p3UqJXlfu{(k1u4bjvxD$FY%xXjw^9!gzMF8~FJ2;iAK{CM z|0dx)b!!Q)f^{48zZSNbcujOR;Ss_wHPz}Y!t;dJ6W&Ys9>RIv-bnaC!W)VIRl;j& zmtp^3B)pz*y($cC-XJ_mc!cb{NB9*2$EURzS6<-b2;WC|l<;7AHM zvr;#4z5-%Bkt+i5K%!I%m}fkLssd)gy9BP+M|SXKyIrOCYW>>YXDIg7^q| z7T{w+IZnJ5x*qUS*1zn6U+03~FvZi29))cIX3t@A4MVG$fLd2`i zT(k}LzHqq*bw!>OSsYa3*poGdxCURs6x0}8H&nY~MXVd>A|HiKtaH2^Tu1#mmuHsM z!nnEA4&9c#9n{vj+9$W%32ycs3vOM|75b3Zwr;&USH4BN8_VKcI^r@%sSD=Z;hC2IFu%(-H9LFP$GY1SeSG{ri86RO zfTyr)=sd>fVa7KTj<1YkV*Gl-;q`i*7~e`bUthvu6kmZ?AHpwQW9m0_h4|?fzLjvc za|hYkW$_nTe13(T`9C23eHI_DakyW6r5zLV_Y?mq18aYlK%V)}TDa}!uLx&5uaceD zE&dsn9lm~L{#|qm)lUe4$M{sZUcppN^^CttI9?}XV*Dv8&k^`F#9t)vY7`vO`2v5H z%J}pW6Wf27?DPoyWU_OOz*o@)I=(-KNsjw23&%gtV4eTL!fl=R3j1AT|4EAGQ@zqa_c{dWYP<9*-a+wq=6 z@v%SWP`RGA(w{ED=XgJD@oj&;CHNdKzD0yd+CP(SDcK*6_k6@{j>fpv;e~XaJ)+im*ab};B&l}T7297 zHo^ZY#k<3W|B~Qyyg#@2cD%>xclHW;a=a%JF7o2W5MTmU$*#myhj9o zKkrwxU?}~G63+T_yysYa+n+lGpX2?a#kc)2FRd2z;dmQpiARp_O2XM6j`u8!Z` z_-|9ZSG({Z7krNQdlui0w~7{3*dLC!mT;-(KL|d@`_C5Nw*QpibG*-5d^_Gh2!1sk zciwT~H|jTD3;J`siwKwcUoZF^?@bop_Gh$y&$VEmD<}yh*~Po;M0U$9uEIkAgkc z^Krr7Pw_tG!v8?Wpp^c!5zhW|yyshd+n-+wKF9l-#kckRtKf6I{wWY7Bsso~ zgtI?yQ@nFs_$k5Xc(1Yewm;7aKF9l_#gBqttpB-F(aXW(dnw^k&#d5cyjNQMDA;5B z_X&PAU1xvIh5x$XbG(1H_;$Rf zj(6&D=#AwM#d`wb(x1x&pX2?M#Xke=vHh zyge2_3ijBa+XcUk;=R*_|BB#qy#H$P?Re`W&>1B5pW|(aXn4^6^-aQ=&+$HM@ooFR z5`2#Lw-!ID3h`E+00l^FzmMXrAzY5{*@DmUuCw^IKlcbe$NSF~KMMV`{->OX-W2@d zcoz~b$M-zJ=Xfu&_))OO_OBECTPWTeUHIP>e2(`g7T=Dy?j-cS;6KMZg>b3oR|KEq zebnOH_FoWuj(5Msk3#<(?+1eaFva^<7yfA{qxS{>Io?%-OZ|5UKF7Pu;zz+A`!jhO zS})k=c&8IC?Vlm|9PbK?9|e1CKPCA4Dc-CLe~;jEyiZ$vTmQ1@=zYO|j<;I16bG+|c zeA}OEXM%H(WV|;MF5~?t!RL4%u=r81$ML=*__HbAU%Bun%tCJp{&2h}5-$Bo2tLP~ zwD?i5$Ns!4_&mP;Q?S>;_k+g}&iZh?$6Nd;v}5~c3w~P_T2<;i7yd1R&+&fI;@jhU zQ1Ch4*DQV%`eT3kW@GOKJvrVh372}_Ciooh7c71h?6Ljty6|6c;lFI*OD#KxEPR=T zmqQ*?C48E6&U{r<9`P3Vd?jE2TISJw#Gk~0gG9H>4*qWjR&@KK->4$0uA%9v`OU<| z%^b>ezrVnP5TsMh#<71L`GaGJiTNK=Co2u?;1h{|mcS?b3~;f)A0+%zfyb$w5V-ll z75Ljwfxkoo=LP;#@^gp4>j~c_a4M?11^yn{|AxT%x$RQ|pB^&6eu3Xk_^Sd>l0RBc{&$K%pR<5)@cj4!1269vAJ`aMqIyNSP0;17}iXA+JZ>QcAp5d7~G zKPmV;|85cd-{6i6=}y6KHL$u@@agu=`PoIRMt{~3pP&1)4wYe3@m*oRm-s&v_BWFM zzYzRQ#OLSxZ2vA2!$-QZKRbzENjUSrM&ny2_3@gk>I~c z{L2MDPx^mK@DCF|BlxR`zgh6#BR;=Z!0~P*|L+j|4~hQ`VSg8upAme1FZ%_-=jZn? z3qHTE&F?L+KWCHvhXkMB<1VM;8T0X2k7+F7JibxVd5YjaM)(ZDzk={Ng8w_3Z;J&# zPyCgFUq$|(FZjEO|4G4rjr8vp{C&hv3H~c&|7yWMNc=Af{^Ld-b)Vqt3p1$W_c2({ z^GNrf2!5XMKM4CBG~fPP@OKk`BGt3~hp2oKZP9I%U?1_93I1Nv=N!R@m#}rh_meTP z{hyK!8wH==bI13JZT=S0^IpM^kp1rnew_F}6#P8#UlIH@G=B~XKEE&jH^D!P{I8_A zS)YSszn*Z8cP8=Y2|mAHzgF<^hf^?JF8KW3J-;W&_J3yRYP;Y^$?sjlKL4c9J%WD) z@gER;{P`_Rj|n~>_g)tKnWV!(!QV&r-w^yYRDMtJ`6PKn@b{CQY8q$OKT5m_gtI;u z6TU>?>uFqC1>R2l3k04e{^bInMf^_*yqR>{AaEL9b-lpH5&u?!SJC|ZlED8$`27Mu zll1?Fz~3j`z9aC>W_Z<^*bQ=DI|pF>J@^&j>aV=aNf^p81#PKNPXg_mhu>;9an_@< z{P{9$vuU&KWeB`upSX6AF#+GuiP*_`81iTYPxopBlw`;qUSB z=OO;DDFOyi8`hQWMJdC755_pj$wh^a9dSxT9mHgMFE`uB@n$;~HrSS?ne*f9(+Q_x zH)Qy3Y;dwg8QK4As70H9Z+l#eL7PQ$0LoG7KUD<?dS(`aTK^X*D-6MW=uEc^lxR+E-s-8qA`0yy14dy^Y#)J#QCKdoJ^q+j04R$RH-? z??P%%(~#*-{0!U+nNs@gETJDBV_6Q?wN&3|dw}|%LkE^|fZ_Q`w#PXk_g#S0?oZ&i aQqQ7uR+90Lfx1%dA0YqtSZy&Y+y5`bh}Mk& literal 0 HcmV?d00001 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 c6c58ebe14ff1eb1d1ad423ee6cf47fba9308763..937e85105916e4126cc17900632842ca0bc047c2 100755 GIT binary patch literal 120496 zcmeIb31Ae(7B$?H$uddE!VbzZimXCH*aQIy0VE(GBDmuavOpvxd0E&*2qFj~iaRJG z%2UxNf{KVD8r*Q@p}6o=+?T->7ZerAcW-x9_vxAL>6v-H?~DJR(Jh)~TNA z?wXo~BgUK_<8mqTNTXBayR0AAjsGSJzQFh4gz-zhvoF8Ke_mC<+qt7P;=uQd zR4+x5@3P!kRF2~e_mwUjCy3+O|aeK?ua?H)>k8Oso4nC6?!B8Ay1yuFe-oFL zf3z9)E0a8%Sa@GfHm`-fHQB8E``Xys+1Q8M*e|fL53{kaBfFRW0$)wZU=?SwjeU@f zeG}Qe^cVO#gA6AI8hM}EIiH)gpHf*~QCwP8q!g8v7nUmJ)m4>>&sSNMmp{XoKYfO; zD6hCg$(veMQKb~+my}f&Dn+v^imT{Nl=J!W=j8c{ic9lKisuzlS*B)!iYnjCyy8-2 zdlDPO>qW4$*5zw2*c(YBz2`3e z#*@1uE@jjSO74={s+hXHxr?9kJga-u^}Qi#_5=cYMWtL|6uKBwm37Ips;-shAYT(9m=<$X@Y!By)11-#EGI9Q|ZPvCt{ z`@wQ`e>CrNDh^K3%NMPpef5>~?WpCiU!1%AlibCh9U4Dz%*wdm6I@E}%9O?G+u)nF zC`w)P7R2#$T6;PP<*pn&fOaP3u8hl~_uK(Ta+iNz)tXZB)krNRDU<6yD#}P}e}&3F z`B~0_u}|fHW5<F1 zA161ZIx~0i;467+635dhcg5hVXwRQQRrcr7KQF{xNBb@gr-lRj=~<$r`mp=tgGJ=Q zTe*wASx?~doh4)_$XyZJu?y|yE+26utCniKxe=vi`H1zjd9Sv)kv8wpHn%KRODS^_ zwT+ks?N%&dp5-r4r7t6=?Zl<{yB(vDKL4|>PD687=dPIeJW-CIBlIm)xpr%wJ;_tp z7i)HZ3Y(UXSe?80veim;VVph9lV?(*4$my9SHc=aKFoN?=0NEK1Wnt_5IlJy~prvDt)^_cDxj# zR_8_(UoOYJe7FCjqg1OM^v?@RW>X#&&A#i2_7v1p+=Hn4v0VL@dZArUoCsh7gTE7j zEXkuiSu%ye0|4?zwF#^RuoZwwTyg_|Z2^pDaH$5?)N~Pql8^Y;+8L&PkGtBWDaMCUI*Wz ze`H;~v@NT14{`c`_@k~)M3B3(*%E@;cUi7$?+Rs?KW_OmD^#Mi%_{54MlpsnJFX(f zw8xYpa!q?|ua5NrqC*b`Y@AaH-YMQN+7v}w;It^4N@m!7Tv zcWHk`?Sev9+kP{$h-v43?|+FvQ`%$f)82~_aoS^@)6OnN+AqeiHvX!sU3f)x zk{L?pd;itMRS(jBARf~G;xE=|@6Q3hN1!R~vG!@N;R5$-Y@GHu=d`nnk@hb!tSmE8 zv}%7jj)H1VT=gLBMHGv!_OlLKr+pU(TtJ{H?Q!;L?@U?q_tw}r?eWfOXBQ*w{tqF9dXrzw14l0w7>h4b=pUBz~2&RN_)J0+V^mQCp9)sdxCS?*~Liv zZy44vGf}i^e?NwT>P%eqAnkJ~7G3T6KU$}K9|t^(KvUWi?9*ONS@Vz3*f{MT=d`nn zk@m|mtXF@~)h@iEQhOoY!u4+|<1mXNapFq`fJ{qNn}Xx7KMd<$xPg zz^1e(*{8jl+vy{Xjnkg&oOX6G(%u%snr0@7R_)546x12SRS(j>_9&$N%5SXG{wq28 zZza%__GJ6Cx8rsy*4Q}hjhxfYE=Jn#!LSZ}t*c#lMWy!Te^5|w5?4J)dq;{zS9`iv zKe`vR>j}I{t>J(>5NJw!Bm1=P=63q=D?M8&&S_^CBkh?O)?71Dv}$kiI|VhFxavXL zAN&o{zUH8{+7mh82M9E!J;grl<=jq}YHY0bROhs_i;?#27*>p#DB85&c7%fZ!e1}a zehS5+tNlcZN#5B)wO`Kx_a)Gj_Eh_{x8`<=)z~=gY0hb97bERMF{~9|>fJ_oMRk%n z=~oJ>jJWE7+G~G-wEyc1>$D%w0Y62cDeY>X{E--X-{`fJG&TZe;LDSW+sYO z?VAo$P)9zm7ik|wvFK{=Lor#Y{hu80NCHi1Pq$C|3~r|u8XKp*v2)tl#Yp?v7}o8d z>1r2VQK`M(&lJ=m;;IK~f8!@e`_50T)82yv-bo@WG0GM?N9$mK_wAaJxKe76pOC*(?79J`!){vd;(2rZ(^VJo!m}cG&W9qQ|Gj^ zi;?z13~Tepy4r~|UPNN`Kcum7 z+M7A2on4Hye}`f9Hxosx_Se6spxO{uJxKdZibYrZc^_J*{Y4IV27#uuH?vQB8h4LV zH8xIrbLX_Pi;?!(7}l;2bhQhwsMLPJcNEm!#8nT{{>!(J_Ky!(r~NDr_-6u5X>V>$ zdwaMQww=W4e^z7Tw6}0hJG&TZSLlek8b+ImqE-8+-%wB)#8nT{zK~+k>vzff)@gs2 z1HOzvQ`%dY)7}o!p2yu|jK;=kZ|R(Nb}`bv9K+i8p00M`6_wgczNVlaBd&Uob`Qm( zr~RjQt<#>*0moCornI-TPkRz~kGC{7PJ1iow6lwm_9htCMP{OC)qeOO1(i))^&sun zQ7n4e=l{n#?cZ>~*Ai$-dn^02Kf>MPVvUW{-r70s>|&(-HVo_Y{kqzPS5#_W;HRKo zBCdLn_TwlPJ?(K?{eo_VRdc|t2sEX=wSC$z;_mU~J9@T`b51+E7->HV!zwisMXUCN zFDa-A#8nT{zTpc<`!#P{tNj=``R^pql=kE7(;oK~6)4x(SnbC$Ju_6NCp{Pw1vtv1eSXBQ*w z{V=Q=Gf}i^Z~YksRX|+zAnlKS3Ta=z&sy#29PlFqn$q6JKJDjnf4*E}W3{(+PCL68 zX@45SN;DHioA$dtp`gBfqh6%_G>S!6dsm9d>Q>kq4tNlOrnI*;rycJUPv-*3I@@ml z9k18bts?3p1-ZSosmxVz{#(iT(z9XAb{?vZYevx2ZvT(}rdqv5{{+l-ZUvVJw{!Ko>VJS#zC)Hr~OF|_)G##X%8{;_(d+zPGjS=M?CX*28MO_tGe37{N$)c zRO6_-`Iq3q_$H#HfcFz?K|8Vt#T| zYM;X6!rO?e9;E#!ju_v0(K_wta=>2^Xi9sCna4Z1z~dSlr#<4C$MHm1a{+C$7dj^}oA8QF?>=J7ZTYuS@} z+Qt0jsM4PG4h2<0T=gLBue}Xv-?+nC?OizF9R!-v9%AP4W^SjeG&WXy#50fI!LS;e ziK0EpJn;RKq}9%AP4dE8D-H8xIr#50elU|6?4 zuB%R+p|aoQuEd3+GV z>R={{R_(98K|v)DS3OAkbc#h+`>@BX)BY?6d=7!8w1=2^d_T8SM~#is9`VfM3JmLk zZMxdU{N$+AKIwG|Y87$SgS7v!7t;RfqtQ!nc;@lV z7}nk`y4uD3_Z13iD{<9>v^S?%^t2z^Y@POU4%kfro6;U)=JBtuQGqu!HcorQ zGmqP2Sm&FGqE&m$%M{dL;;IK}U-uHEeeQ$SY5$F!{8tlbN_&Wz$LqO!T&S^e+9RHM zyb;6tWRtFTF+VvfwXb-Qf_j0t>OtB&Q!KjLW3>7O-5j`_18z>BDeWO<9*^Sg@!11< zwj!Q+oP}Y{FcU?q_GY^&s56PH9;AKC3y}5||FTwlG6%elKvUX7%sl>)yT?q8jny9U z%;P68te@}K+fU3-j!NyfKTkpJC$4&s_5l=&uJ&eH{eskfBM01>KvUX7%sjr0yT>p0 z>Dh{S=J7BL>oPM@v}*7490ip}T=gLB&pZohzkQ>%+S_u#TL?6zJ;co8;oLnIYHY0b zh-V(Ziebf@iK0#W=4U9VukNiEX+MKv(be9GVzRmwb`J+UfIw5)L(Dw>mb-^XW8<_( zJo9)GhIQ>ddbbhtlcPGx^xs86RT5V{Q2U#;koL`YTcNw^UUMl=-fmkJgNC9gZgCYi!+Z4C`2tg|J)#(ez$)P zZTrure*$J6pG;|#%cBkF>TlKynHOO`m%;08zzZ0x2Cxm#PG;~t09yot0|CU@&gwDS z*?{LUtxE&>G$5x!KN1t>BFue>KtDSzyGzZLBr>0UW3@$?ZMt^4dRAN6_fH%$_9s5W zAJ$f;b(MvG93J1}?4N@E`|p%(yX%P_kWVjXt0?^*%S3!GQpx z{(TI#(?C|HoOT{U;^qafC*W}U?mKje3orPj3s2(5A>Sn8bCCFn=-<)VzZ?1=UT3sn zS4i1RZYGab8FlQ8Em6bZ*HCg0l-$7J9sS7ow;Q>`&e51lz6v0g?8D$@05Qlj8N43A zY^Xs6kA$lMM2X+b;CTR|#50(7pa!zU)XPV_#4>YmQX2q&O}*! z%ap4Lw3c|hItUTNtf4j>#eCkKNT5mL^c@5{iFaYqbg*H&kRyr*5G9_$B@fM zd=)^HcnO1>0Yr&k%U6fj1BeoTgu!Y6QQ~(o?Rgr=5|>}62qAIvLhe`B!ing^HM+!u z7jh3z;uDeYTH9WCs9I;%9Kl zcmT1xmNIzo7Nepl@#PG@3ShQkj71*cOTx_nqQv(ycs+n9@dHd-t${3Y`PG#W5;rfJ zf8S1!_|cnni3fjmB|M4$1Nj~xJ_m`(efyZ&fI=)5NIv&Y~;AqhGWAs#BmLQCW+H`YwRRGl@B`E zhV3Sg5|>{S3L$ax4-~xc1hi6XGf^~`o7W)UOE)-5{AToD%O?bF2ZF9J;x zr|&V@Nqiw6be;{{!<>Q101gI4E#Z>c0AgJ>GS~q?l=!m@#si2F|6&J$2d^_ygc47B zlE7C1YzqOM&2`_bfh=+Pm8=jF7hkp#Hw8X@3|gt5nJ5~G{|ouPSmh}3N6>$pv;PkC zUrPQ~5u(_>ZvNp7G<^6leb?=zri!LlOAsrz1J}4*`g6*q_0D0AfqL$8ETcz_27?Re!|^6_v?tIcar)jVN*pWsDHr%|sgWLx=-7h$jP6gRYtwtf~`M^!9!3I zTjB_PsQLF17?#AZ$6#gxCCXwGAFqZ$Yl-hcj;=NwKQPB20!_kDLI0Loyg@e&ujMxE z1|YV?T@0oGhy#`989cNoOo_ik-ugi0Dk>#MP59ydBU9c^ptZ!4sd;sd(}4rW0G(I^ z=M!j>IDMZQC61Ns!3DYi8%8vRBT5DkJ4bIW`CW~5UCv?fbpSEQe=xWeK$Q56_Y-&v zfGF|p49)`(CC;Do{>d815|>{M40-|k&tEsHd6zb6Q^mUtI} zb&2QOaIE+jam*snBysxgx}C&F^Fc@0uwBNL>;fQ4d_0#-1`s<(C4=8xW>gdp0*_#q^2{sFKDH$aA6W};{=H)kQ=L-QRa zz5x9fIr}d~|Fg(no;bTI#^Z~Zs2}(X07Qwu&)`S^QQ~zBb|Ww>i8rRE(dGHvrA9C) zi|*Wh?+|D$@e#;TW5cm=BXQh7ph@DiPJo@nr}06j+OXZql^g*eN_-}l>;fRxWfg zk@yYBw`Z=S#BW3Ybh^#lJR08!$xF^VaFCeT{qQ<39#8;|cxiE6CqU;%?68Isj4PEf`z`AWD1yg9QYJCGj)J zTbKB;Y9knwMG;drCQ56GFGP+fY&bq)4ZKF6N#eBrg`LFj?HmaAM|k>wjby; z;a>|NO8hx4xe!2%<4Xpo0*Dfi;UGr4AWD2Z zgF663iB~eXj=-=az68$?{eco?v7RZo;B z^lclqR0bah5GDRGgKGiAIAU3g3jsulw`XuFfGF{tH3W_T5G7v3U>5*U;&ZrLC2Jr{ zTrN=)LgMBh#~gAKNb>qpy{`oSIA(ZvR1%Ochxi;Mo`(KSoc&v(|0gpIMd0P;1=Mf- zhXF*1&tz~vfGF`*4DKK>EQ#NR=Z8r^iL%(ql+y{cmiXJq(b$G#0DX4(Pa@DHaau#i zPU1)Spg)xu>A{FjX7FtQQR2rKd>lY5c>-&3Er5ODbUTQ_g#e<&eK!+06+o2uVg^S5 zh!TI4`&<_dWQoh=fI>*z{6nM{T@Mo9JVTdw@Nz)mN&F<_^AVqe#Ji(^rn7$^^sl?b zXu}?m?2+W;Z=zKu=+Vyw3?7D(*b;wo1Mep=EQ#NO!BhZce+cGbKHd@nttGw>IWlZG zeqoNG1ezpH>lLBIQK)e@P=RzCHZQaNRBYsKD1@8LCEo@R>(YbHqBQ%gDE|*>kA#wAMzRtZCB>w7jUE;w%`Wl|Zha%s6;&YJr zDD)rW?0**ex6$HNRg4lZASZt&fY|!88EgU|w#0FKJ~=!sOo?yBV6LT7a@2&f_%|Q# zE&{D3eh4|vu;FOBia0JN&?IqM8_G`NCvt%vHf)1AqI3XJ;$67pPes;sIh(<^0Yr(< zV(@VQF|lhHTnivdd?$ko0c;O_E>k`KYamNpE^`$^;^rUNz4>a8_`yP5;=#*Yg(vZg zk#7z0IY_(+{fnLbOVNLT7H`m_pNF^&#{h^e@f?Gh0OCO9O9q<|7}i<*H}cjmHy$E|(MwA#wAM z89%ZdG8}Iviso|jQsmn<)luS$(SND4{|fX!hy10gx%iC1vR9spupZelPUK$Q3v27j7jWC10%h!Ve#d(K)7WQoh= z+d@d({KL_EmqIIbFcU>1@zuz;&*v!d_2|FB*?%MYSCYS##J{F~;9m+LO8gju#Q>tj zPvB&aAuue7_a<*$;$K{B1cR~|$CSSjXf5$+$Z?kq$IB~-<52=l5~ua$>?FRN4|;_S z+moDuX#k?cujP`X0mQmI%wP`yQR1&Lm<}LH{LqyI{xsQ05lXz-G6LTQ5GDQv_ngNy zkR>jc$_pWJ^N)0YyBJz2+e{RV#2-bzLl-$pd?)(XI{QD5{;SB}O5z^Q=LP^#;>R<% z6hM^tX$%$<7?#AxleaE$H&CK1W-w(70<9%}1#&!np-~~^_>wj727xAt(^`IZ62FHJ zdZ!KBf9N#fzXCv%_yb&W8h{wbzZo12AWHlz273UA5>Ht|U^;*(@hk>^y1=MAO1uMi z@3%FOB`%jG3?Xsz527b6f>xSrCW=PlZ`1%^3h_CN#otB$1Lr&Xe}ev-$lprh9j~CQ z)B=bS@6X@{08!!>GPsn$up~Z{ymg6tff8l0j468)Xf5$Ok>maIj0zz~EQ|7c0!;WK3d>n)6 z0HVaFaQFV{Ts1K)ak&I!2#K42e7^GnXr*~(qG%-k{bj({jrbfS{wwQ>03b?y5`(n>qQvJgxPid1Bz_g19|i*@%HnRO98aLN#GgWr-zFIqLXHzy zl#PhPByn1!(oW(Z@j>6SVQb3ZQvjmGzhLlA05Oh4*5VZaqQp;Pa2kLp@sSG&91S2! zdjc+YBLbb|LYq(pcGd_@yApTPEs#MR-NL8df9Z8%cZ)5^sk7 zEuH<_p#PU=8;ZcoO&|4J|L*{z#48v)03b^ICI)K>3`^qolDB>qzW^vv7SAx{OaiSX z{vL9)u;Dn3KD+!~2{cKZ)&sSZ_@8{xBNL4DU_?C`d=EgBxSQqn6o6Q=6N7gGh!P*l z;1vL(#0%yVI1NCQ_%a4Z1K3V6CUCvWJ*S5Tvc%=mrXeIQ7A+ML&zl3SwDl}q;=xOs zhIiAjEAkZ(pM%7+(7%tf{{Zxl)#44hX*i$yfxjhyDDi6<{C&L9`Y7>-89YE>SQ38@ z``c`wL|J^ulvfdGE%77B(c6aOLi+6TpH84j;qQn=?CGZLWQQ~(qIL!uJ#^7ij-0lBhoW(M-{~@DTMt1Qx z-h$i}u^qcmKcOX1k7U*E9`OxrE4xP=a;a}W^TBtI@U!vj;VVY?b62kzzT}(byZyh< zr*?wlf;fbp$VP`+>H}3*5e~ZH8Xpb}Kol2lszGmX>W@OaE9caJyFJ63bG3 zNls#c+ov?U|2a097P!5K5dUQ6%njny7PwuFoR#E+3*7Fbvz}Omc3F+O$qU>Lrhx)k zR~@92m!i45syh(yoZ>*DMT$h&yJCz-|fGJw*3|K zPlyF>^SSza^g`wZZf7z0kPSGO!5aZ=Lv@ww=FVquHh?Vx!3zLv3!r+;!8YJ*ruAwd ze;7o(!0kjL&_A;8JwwfvB#LH8-v;^4B|e7_gOkv|v$KD9^#66VY+LgJw?oLupQKeL zXdb`>2ET=p*^umN2KN#e)`!8h7|bO=*&itHXUfY6wEi%71vxs|aD2xc0|+#I7=&2h z_D?S0v0-b);Mb#!+zo|r-8_Qc10dEVgTaRY#826?7`zccOl%c{vjM~pgVhXP03hmr z0fU1zkd+zn0=NHAPY~i1_*||o@n{#g9e{jQ#OEOKq3A!{*?$!JH`C$`8t+`qZP*z= zY>7J!-ytxL>>Tfywj6Qeto)iUCw534}chCDT5CIh!Ve!KHK~^0*DfS zl)>2mqQu8C?FAah5|4O++iUQm>EjW)#G_r{_8jE9j`$oTelhyzIr|r(f0h<+ki_q! ze&8PtAWHm620H_Y6916FBm%=ai~oTA?VrP~WzmS+?=b?cCEk%>UE))0IF|8^nMwjp z5)ZM!?MOaojt$#9u4G35QQ~8{qz6Fk9OVptJ)9OSsnhU4xU;#ftX zN#Y?ExGms=`fS*4;Y#KJh!VeqOLhbh>#~wT4}d7~jSPOBZDau@{>pp;_W+0z|DM5z z07Qu&W!f7xkR=}R0=F;Dfs@GbW};}u;;WGFl_8E2Uyc5^Is30i{~6>j#|C)s@l)yt z{sjP{#D8Hh4?vW7YfkoX0>hH{$>gn{fj>CS2nJgi{oBm-`v)2p~%Qc?LZIqQw1k3H*Anks_3Mqj?1G z0T3mA3fKK14P=Q&yuj_})zC`)%|y{id=v8d2RTaoQS{&L?7tKJmyy4f#1+oxZ2+Rg zn=-fnz(Mel*^j|I0>hGcE_v$`|6`yL49X&(DN~8kTH^DO<1rhK4_N~*6KIlnhy`xf z@j=(vu)R*F3IBWmQR4sPl0E>jF1s1b0kALR?h^((0*Dfin@ykxK$Lh_2ERVl$RA3) zLe;+pvcw}^;5McbT4|D*C>n{sTmgJ>#OE+jc?1358sO;vF8be1{#FuiJBw1b9l!z5 z5JI5G6jA z!R-K|#LF4Hjli%ZemR~W`T`}&;&!IYCD2;p+mPdjzD9+Rqcw{%mN-lj53#`Qem>|v z8@6Nyw*iO}|A4_Y0Ad_2*5Z5sQQ~bF^Z|$xAMy_Za{xq%=QG$5z;uA4L~f}j;eE?!zdNa5UKs#yvoPBgFtJEe~TQsHXP~GiQ_^7O%e~Wz-@aj(9MSJ zRE{VGK$Lh#E_tZCbzR0YxDP;-cqN0|0K~-J%-|XTQQ}W9I3GZi_%|g4`ZSOw9`ORV zHxz)xzc^W!c(e=LUWj}*6Q6^`^U=S^*?$K5_tWAHx-b49x8W!Nu_bmf*d0I|sC>p? z8i8S*#eX4h{c`iZZiX!I!@V)L-;)GdOS~JwI!7UJ;22;8bIc*oB=Han+>YS_BY_Pg zTF8~`1|XgRCUD6V0I_5>gNM2r6~!P|F}M#vl=vfs1a1QmCH@YBYXC%v^XI&Oz6P?y zBVOQkOCDs{Z6=E5a&r#yJ<`Qd;x*{M*x7#>`kzhy^2CW_@mHuH_=^BUiGRT0C;(C7 zE>3oL0>hGcQ}Wj3`9fzS7?ec@Q~rlQYl)9Uj>~O0?k^&an+P;XJj4RG#eC2L8@9Ea zfsp{B#LKv3Hvq9N*E5&`AWD1_gNHg9SwM;Jol4+708!#UGq?>vlz0($$Tb?s5|4O+ z+t)6JR`QyOqLKJb$hWtnqr`7V|MkxPccXtf`CCccPyN8Z7(kTx9}E@&h!Std$sR>u zSQ76^-nzs;J;?|LWpM^m{z9O�!w)4jYc$`NZ)sfhLKESm1UkA9Rro+vA*p0sv9s zS98gc0AgJ>GuRD4l=#aGrT~Z%|JFy~p$ulKGrqhIf5r8Q1 z`?zEQfEdTC42}d4CH^IY-2lu6p(afxFajuRG!p;!dBB%Md=6vrchLXc_KyA^qW}HmZzb^)FQTmM1P~?Om%;S_qQuW*a4~^l zN&FJ>)+OE+C{Y$mn6f8<))HTb9RF!&R0ug-EXr>PG)X+f0=Kn%&>c2xKhbHzzYai@ z_zPTe5r7!SK?Vx|M2W|;P)7oY67PHgf!zQ^iJ!q>3VaJNd)K$dvK3)~Jp8(Qhc zI0L5(2Fyz8^W7+Hee{&n|x_0!R?AWA%MB7p?}qQsXlI1)gV_$}P$x@jOwJmLjzFCGsP zf2gG{@n{#g?Sy=J#OEOK4D`=(_V0)OE-l`mn}&0#ANZRAh!Ve=!CzY#t&bAl%;38O zh9&V`*x#yv5@qo|Q(j4+wZso2M^77$^XRk7Ka4<=#6v7_+mc1o#D;A&M|8NkkpYx= zTQ0dDK&(qPgF663iC@UzIsj4P3(g{N5r8Q1yBI705GDR5cgT?%$P$luf!j;Rg2eYU z(gd|1xL)mFRyS`O6b0j>Y$K8_oa_TjEm&#{q}~m3U5e7J*?&ycK!tmz%Go z7{T;`ChEbAWN}x&NAr`nThH{1oGCC7YCFmi zia=|LFGY@B2}XsG;~;C`O#)3453#`QMn32U8@Bi8G~r(gAWHl}E?Ep9#_>9XV*o^n zf5TuVfGF{_VFWe-5GCH5!Nc)J-BIFk+`ac}AWJ;r1#TM+fmZUFiK3DCo2LO^8u2-d z#otH&591vDKSTe`I_K#mV$jS3-0Jd5%N0!{Ut07QxBaQ8m!RujV#k9dLGuGGMKE6q0(MI-Sa1_EDq z;&YJrZ|HwC#?jw}@xDs_RuUgh{nq~>fGF{E8GHsnl=wUb?N9hao_TvbdKi zClF{Y@ml2g!(~(mIXbW?Q;EYQ@em8#e!>SmV8hm&!CC-O;(i7<0ElrUvlf>Eh!XF_ zU@?HSuP>D~ijLtQ10YI#CWDy(qQn=f=YI`kiATJ^?djC|y2RHgdS4OC;70uDCl&cd z5uby^TcCeyXa9ESf3WVDrNr|{wf>_3QXxIrRSbRzAWHle2A?4?EQ#Mo-g@#b0!oy{ zb4*!AptZygAV(`3j%@nu@}EqgN#Y?ExUJ)Z{(j6z4@T6B!2XYHIOA9@dCH`{h*b${i)_e5=Ci*;MQ zVq#)ALQhhBvqTC*@g(rSlsx)ZeYI$r6c?A8kP`1nOiyg2D5>c&v9a;-9y&-$T!Ny+ z$HlnavFd+REv*dy+l`vQ6%*@r5f+ds7x62Jt~hsshdo^ZFx$xLZf*@|u+oX%V_b9y zVk1Y514=ZZI=JFAgN}=`{N{GYxv6aE7hNwXbpNJi4E5eO7GKj*jYXE>Q##$kC3dCe zLi(FVf0xtWb@aD^?2pmktMvC7{l!I*AMQ{5NlRj)7}PdU>sn3Q+!nVJ2Co|GG@LW# zB>JQCE4N*U*8pWu&0vMHR5MH&QFFSITQiDsMQv^KI=-e&O?%~pnl4JWnv<0tH5r;8 z9W{|!skzb$%aJHUzR=fdd!fV2stnpf9y|;XxuV&22;ULT>Z@e+R(kbTMwOHlPRlFt zPVjatAgyO)WR?_^=liA=mimf{OA0G9r{8zi>s!4dwGYA ztK@*jdIx*EbS&t0f%jx@@2sw;oz{0CwTq0C-;2sByj_Y1_Z(O}Xzak^lTTLDAVh?I zUAo9xch%EOb?SOy#{%Lm_D-fF`DSune3jKxD}9CK#r?ZLA+45%dv`B@M$1Wu$z3VX z%k1jcTh>pD(6W}+ndu`+TBChKqWwamr-VfNheQVmROH<{xU8Pi%LdPKz@;i|M3W`6 zYKP0*+2JyKcDT%+9WFCyhszw=;d&OW^V7>Af4v;?*UKS)gL=sX+8o~@f4v;?*UKS) zy&Uq_%OQWg9P-y&&!3Q~=}rASKaoDu8^+%aRHG?z1B!R08MT!vp-IW-M*JS`0xVm_X*iR+EhDlgrG z?|zAKAHMq~ClBr=ZpKSrey677Ml|lW=g+F*d+mI~J*!_Atp0_UsCUtg_BG09g;D;( zOX$XamY^`{MDT2La+G%kn!*I-E+Vk0+=m zSP|gS4h2j>VQ3vEt1CZkv5uoB^XX4N0^7roj$M0XgVKF=jDle>=#}Xwf%~ zz@a=hw2`-<R6qh-p7A^tjz4O;ik33gbw~XGWKVMh3m)`l+OnXyY z^Cl>+Iq9zB8zp#Fxf0UZ-iH46(=ksLKKy3wuYF~X{g3Q8R=1uVQ`1jRZ8bVAdA6rU z8FJjfZoN;UnfO}y;q+ckydE})7nkLFR#2V3>rNX(Q`48m3`>c3AM8#csjgJj7Y8_uo_^q@W^vH9te9k$t{F7wfRZ>@XE4}OdF*h-+^1n~!fitbkbIeESZ~C)! zb%pe<KgZmRPV~zoYXE?$K|H>TpFL7+JAAv*wpNb)c!+Ldk#(Ql9TEs zKl0B>^(g#x%;A*#Rm2m+JPohEGz05}sHTW_A#+8(HxftNE57&4U-#tK)-=tdwYICw z8GC}d#a|)im(=QU+OAR~@HS#!;)jpbso$hsEgCmY;NDnmLmXDwE^ztabGPtI7Vq-Q zpv}d;d~=J9IcI9|Ne%56cG*AatJUhOrFcIg0+IIqVqeBxEBq40yF5OBeU@L+?~gjI zev~cMbWH4f1YezjtK|-feZQ#xZ(?88Lv{KK|5+y5C6F>+RJ?_F?!%%&R9wi=%1&cT>A*j;nb&2YRU|No~{gujW6R))UbDn@rVU^`vR?)OIxg z?@8yH|M}ZByLu9}^>6Hz{yzzSJN`Qq%%aF$sgn zH6}LUesYZQB-~AJ?$)Hqn3E>5#T9=exw#8@yJHXjHzw{$w)}(oUrgsdWQmQ9qe)JR z`(Jdpn63la#}l`nC{$&}TzwT;-0RqVC2z)g;ys($$rXPa5hd`p`*?P5HHtP9cJTf* z`X{#4g}na??^jas*w*x|dnMsL-rq#Wial;2?|)7I&;f7bm}6r*b8P*|6t_P|1!B+V zusjLtY0pDT1t`79F_AHkl5iqzCk-b-#$TeE-AX!H7-P?iq-UIxFor!ZX3rAU?CvQ& z-zLwc(vvu6vFFXy5b@=z*_|sqllTl5U!fV#lg16qS*01LOJgfG&eDuDl%R4H5+CS$ zd7#!x!iRjIbE&@Zb5*l@l`MWPWh?$t&A3GxYdNILG~-_697YLJ6GGMOP1{Kei8y|d zYIc7mix1@Di#6jRY2?K-;+JT~U!<`YhjgW8JccfDw?!7`kdDaWbRhmjOd8E0J*k@A zAED=oR4cWbbf6}*oz#^*pHj{4^kz`aG18Md!XWm1niW#3n%!Nb=L>Z7S<uzDKLE6_O?GPnlC)0k$t}nAWJJDS$31VqK z{#9XBnrk&kzLK&KzeiZJg|!jaIN`(?FXz#7A4logM*pgtgUG06#-*gpAQsOZ-N};D zhKhLB&mpgrDz@IqXYJI_iGF|L;RBSCv^Er0;xFu>r1582;vdZHNlRe+QQl5ZdxXjV zdn=xA>7YAIP{xP$qt22 z*IIH|mA;L4dbsYToz>}kIJOLRXMOrxypyT!Y)pTjcY3NjThc$}on9_lph(%Cevqkq ztFhIld$^{3T{(1|=M?ur7J0&C@^1Vtr|s6%=jmvz64!Hm(^fOfoxG`}r7+1|Tysxa z53a>MT=8^j`R|D_-oqT~CotDQZGX1<2~({Tq_wHiC@ty-A$JsrT+^cr<{ z%fc2#1&XWrI(2W^!lbLIkn8woDN^@!hZZD#N0oE6*{SXxS&-C$i?)49-K|;JVus@C z&*KaCb^ZlOO&L2?+x=!i(nd<7YoIzhx$esail-Cp^D)(o()vw2uHmDq`&m>q?mCJ# zNb5;e6N9vm$odHZful{%UBe*Fa*$TTqeXf-57M?sPaZp|!>JrDXE8{7QFxjLY5S!S z2Wft3#6j8-JW$9%T6!BT_#_;p^^`^&q>UFwwNI$SDGuIhkameIj)SyvX~aR=ENR3+ z+I&2aI>zDySq;*b$>KOjTP=+^NZW{<>L7_Ztp;heviNp8FG+TgPtJ=X{)5C;~;H4 zdWIaNDeXmb;2^E1Fsi5Ukb|@-=oxa5whBE%4$?MC&lf1kp$BQT!qq%T`$$?%gEYk} zTA68igr%O-EeC1Y!j%>QBsI%HT8*@t25Ggz+Av6K7^MAO2Wh|1FvaBw9K0BVG>>_Z zmSi5JH8u^>nwke`ZOntTw&p=vI~=49Fb~oOng?lvq8p^~wSgFc(>zF%M$;fo8cl;VJW%LC8m%YFFY_Qx z8cl;VVGLuCCX1T}Y0_vKq)DS`kcI~eJxG(qO@lOPG!4>_GxQ)$7B>yjq|r1;Ahi{X|9^-AVhi{X|*70_iM7~WPtGIZlXCmJwk9Da# z{S)~%d2Ecjlby)7$zx;Ho!mseO&%Mk?u<|5+vKtF>dtwIe49Mh;~GmvrzG-i^4KKT z*|ak~k#Cd7HgZiRTX`biCXY>5cd8P3C>-0wRZhs9M7~WP+ro7^?bIalZSq)gn>>+k zlgGAl@e|j@iF}(pwvDTpc9tdbZSvTTu1m>bRU+RekL}@FN;|6)`8IiMhPtypk#Cd7 zW~w_I6ZtlIY)^G(OCsMUkL~5+C(zpy`8IiMZ#A~sM7~WP+t*b_q|Yfyd~ZDV)&%w5 zc$;|i0xv}CsH_=`)wgoZcWv? zP+FTRDSU4{mG6zm4so$PmG6zmW^3DgZ#;IWx}C=N#^bK!W2W)F@wjE`Cg0zUTh5#5 zd}rO2G?j`3O4qfvIR)I9Zgw}~jhO2$YO-WI$D}A{Yi~;9V#SrhWn->8k8ZB>mKrw^ zYxkO$P>7<3ETRK_LJom536g0pPQ$%s>&uw_VpPFnve1_?($o1eMtGVpW2Dh^86%CR z%NRUR=*yS^TJYw}7-=+J#t35=moc)q=`uzdO_wp!Xu6ES1BJefk;P4yG16$dj6u%O zmoc*VeUupeUb8fsE@Ms=sWV;1NTca8MjB0*F~S(eWej?TzKj_NQVe|=BR#($(T2X) zjGmz{W6(47WsLN6zKlW7(3dfTM01!fV}vn`%NXu8PgswWB%fM&926-j;T$P-Koc?Hg+{hNT+GWF()a>$)}Nt zYSTh-r=FTTFnJVBGmRB?N<&;4xzI-#zcG~1N#Qq-%QdR0i#8HZp#4npNa~{##I&MO ztg*YymCTk#!V)*C>5$fg=u#=gaM28@O{i^*(v3bfs;Q|@H8yvm zCdt%`n$QJkQ$8G>G#ffqWSuI7au=gs4!T@_q^9r>-|?u8{#=>Wl@*!ArTHb*1%;V& z`uFqo>(hf))~}w^V_Io-=G5YkM$VD%;1g(of;a64_&|Ll=^jB&! z@cN{NrJ%5gP`bmQ{cKl3VSZUbVTF&(m1L(I71gE1#6;V4@1d%AW}&u4RW2^0O*+o$ zqsEM&ExKdEM`WY$^vx{HV-mV&L!V+Xa`vA)$>nMCx#wq^;vW;givD%4iude^>DbgW zjdon|Rq>t{F&$gnuxZob>o;wBng860G2L8qJUg`i+)17%JWqPE4##wA;W@|ze*VX^ zga3`W(bbIK-E%!p&^yz)o4n|GN_B7U`HC^MOo00w!@Y5Uy90Zg;jR)putPB6xI-}i z1NZdEVvo?BV%M6fxz1ezUZlqpqc(gt=e2Y zam+T(1XNXd;`kpZGQw7k@H`V?tERl@*|8(0C4Kz4|MnkH+&3+^${LU$BnSBMCjh|G05jtePCui(h8@UB0OP6-b|64>>EA?|KGIg|E-U~ zc)BeSqg>3_fq%E_Li%|N{w3$X&6S~?&C=TGgRo`5bzw}m<7Uw{178>J^z3x^q3c4~ zg};pH*;M_%IbDMg%wqjQRcz;`{N{O5+X=c@Os0X5R)je{yMh^;MbG#o6@4a{@xO}k z$-g+poz^k_7qw=_zc!Cg{pE~L6Ju>~%lsF${_A7Z@+dF9bcO#HF*4&{TkF5Rt(noH z&-|CQ{%iI4cZu<@ul3(RJ?=#MTxjSu>Zf5tuZegJ@K=9!{awzvG_KNa2z^es?_-p^ z=wIuRa2St2!hMn=pN%Lp^NLHgCmQrnL3>6)BXRk3gC1AN2N1L=A3M;)3VzNYCtlKX zhRZ+qoWbpVJ^%9)|HDrmv@Q3%A8FeaKRVu>Ty%a+3#y#w{{ut*zsbEXIrGDv?D#Oq zVbI^VVbCuxb^gnfdwm~d{q+OthCzRG&tG*J@z)P6>$@Hs2L1I|Jq?5YhMxUj-1z(d z{h;6HD=RAURVltvXZk7%^9p?BRTYXae>#oJm6GZzUupHsVWp!=hn0@3D61~7q?^t3 zdph*{K9$Au3aOZI$sw1VKo?)-^s)?FHxzk^y|+RRYMC3DuRw&R$5p|zxc~PaoS(WoL)Aw zFmq;E=J3MG8C7NFnPTo!rZyAGS5;P4Qkh9N(hDo{s>&*S+MFwjS%gfXmQ~vvaZE{t zdi$L-!l?)f$#CdPj8*eW^JW(E22HS;{RfCi zU!rPi#72FGo^xI=qxlO<3lv{baY(~NQLsND}4E7CDk)Ec?4Bh69~mb zNt;?ibuB9?V2M>0>S7sDFs-n1d?7WP$X#E$44gA&%mls3tf#$cD&k+PrVN(n6=W&Y zV1<>eR}$~cyowox720e#WnN)LnV|rdL*J}knjF}dr?UCVORBZH&8{e}D%5me$!g6n zJyVT$lqP7~hE-I3dri7z_R73jg_@v8j+^8iHei6ZxUsj#OrF0-Z&lT$g@e@wD9&eV zMgH``H0`iQzdqg`)4V-MaD(%yRF5LcZvKoO=NSXljMuO7{bPMgw!_-=nu^@$~sp6XE*^hH0&N|%Y)^TWR(U0w; z)XXZTM3c%2^5&KlPn%w)6qS_ak?hLLD&-M_6GoyJD%70DorEjo z(E_@?);ya2>`xA&DP~o1OUq6OEkma@t!e1IVv3Xs+MQKIm$lc1c2JvU;S{N#1zG)U zKRmR9`$`Mva6hM02mMxcl~PlK_NPP4OkU!G{J`Xe`_yM!2Ai@0XIiM)t(v$b~g58~tq=(2i`9i(i zG$*+~-4zUcx#=F}L`%C{sj{@kD)RRVkjqUoo#pQonCsx%uU}> zmcI{RwkIm`cL>b(Bt`ySf!Us{$lq-++Z!o|)T!5Kr7u0uYLKgFieKQ%t)wdJE$wOg z??7M~T3=nMO{1H#0WY`GSjio2WpAQvw6r(Xe^&yj-1Ms|^7kan_U4M!?-{t27K;4+ z2eUtY4NI&{Yqqyiyq0$Q`h~^It;k=wFoSO8c(Xz5xz%4!35MLXa;DYGt;k=MFi_57 ztnx#hVbQi4(OV3)*WQ5kqHme0_H_DM8NN;s_9+4OQ^@X8j6BFzJ6*L0=bsnt=i{yq z;F+uX2e;#DvRlRfpz2S*`XZK;KZ*AF^&0weF?z<_Y_h z0Q=3tUK3z{SlHJG*!Ku~ZGinNVgD$=9#4;MxL$Ha{W)5-l#_&AuAlD}_8eiCtK~Nn z_9?~fX+i-esQQsFq|n)Y3Uy-wKWvi4H9 zys|(0%SG%ng#T&6E|;vA@%w~bE>O??oL@D7V*spsA*k!*SA7EcE`lDQ&S@uWSugitMw99@i zmuQxD*{|g)&C)LWwOo@~_EXuf<+9AuF8j4ynOWLpzn1GT2li{Z6tlF;eyz0C@+0lC zUwZ@WvR`Kh*k!+-5@478x<=Ro`?Vq#DE6wYLq8uT`<<}Mej)p{TuwQ#U(3al1N*gH zDmk!U%Y~5x`?XvKIj~>Lm5`-wWxtl|9tZYoxyrGOU-oOcrg31umJ1lmJji}6moS!g z*{|gy#?mhPwOp|{ThU&!U&}R%rCs)GxoWYrf92G##j2Y@{aV;%e)N7V?6N=V{W`#| z_v-+=-me4fdcPK{RtEL!0Q*wWf5!*d^?ohvvOntmI>4^?>j1mnuLJCQzZQ1cPxXEs zVAuO~fL-s`!Y=!%{Jj1sz^?aev96}{*ZXyVUGLWccD-K**!6xb>_PontZC`hWN7qj zVVC_v@7KZ})USm-s9y_vP`?)Tpnfe@nGEXJ!Y*~I_iJGf>es?9<+p>hHoH)ZYhbc?jz7!Y*~I_jh3r>hHoXhCV4iPD{a0x#fY<)2CZw6a9d zeVA;OC-^?hDB&-ECsZEdBGn#zU#Lvw3BGT$gzQb|KEoDqe~B&|)z?j`U9uYQ8_Di9 zcJ-|c>fl}_`2NpxHau^WJ)Qj1$Dg2c@Wuff|7%ry@cl7fKC+34LEAZ%;<2))*x30u zyf~h~`&ax+Y*swu$nLc`uKH6`^yOapyPMMG67p|MN09gNX!xhT=BoUuL2Kl%6?XZ} zRrzz8JB2-4v{#|v8Ay3Zr~6B}0r~7D{N??|lZF3l!Y-GJkU#JF9od;Duw8x^{&LFa zt%9eH?2XA^{vwq}*c;LPGON6`x3Tlet5*KGWN%FQ42)-@>Yp04DCcaldqoWRb{*MI zM1$Dgt=7xpzHWX+Rb^FmQ4vjzrRU^@(`ac9TCAgLrZ1l!h0{_Y^kk~cH?5>>YF>%2 zfSwFi`tqvhDEVbG%S#HY3JWq$={KOiwG%ztEiLxtRaE57rRQ8#6?2uM3VJ5(E2y41 zb1oHuJ$e9MTxD`KJxu5&zkO|bumTS`vch}(fhF{(j+W0m#M3iNOgsy*#EfT^rl(x= zu*F~uL=3(_#9-rxHxRw)$ydOGBPUFIo)#Rv_At!qX_|@A6eA-#Um#-CEBMiqQ7RY< zRnD9dn2lkIF@Vz)WiTd=r$1H$R-@f)(9mT?v_WO{XRsm-_6~OZI)mLI#KY5&&m!%P zu0N?XbvKz7{gEHf8?k!OX*k$Cy44-1cBc6==D8FBGc`<8D^ySYIeNe&ebc!^f68a~ zoKbu)AOO~j`Fy8O7&>-@Z^XFaKAJ>iK2y;Imf`1*8#;E>Ff*byD4A$hhHpf!V8|Ul zLGg_ob7s!aF}^cTKmF_x6MYkh=Fs#Ia-{Dbw$I=o?@&r9`>@Yq(Pvpn#N_llvWq@~KL0(m!QbgzQ%EADMXAaR+h5YF= zd_{T1B?iimuhlrz=xKgIaj5~SG0-H1syuDxky2D%LDK<>0zIb9EGyMK)NB=0mieaV zl@?Hx>eF*xK+4BYzs>W6tRL^19_f-OgC6KY-uMH=%xU$&*yo#CSt%-@K0G$fZz(D( zFAS)1rByA9)F zoGw1*rxy^3+|!C`pZ8h`xlKpNn^~MsF|mF#sI`;~8f(m?@dMckr&doR&%9Ea)g^a} zON+|ncHY#f6@|0p9<8fZD7Sg))?f1CC$ld4lh+S&UVwaW6L1vv#a9Q~p&^=HUd|to z?_PAKZ8?6H<}BL4@^YSme3$oCq<>)f;RO6rSI6t&tFP5!L%z%SX_&3PZA0ESk?%JKl$Y~9h>snlQ_MOl4Uzvb>x(vrLpfB;uF)l*g6rxSGnci!3ka*UULn zE4Yj>e97|i{VM{oynY{JyjETwM{>w=a{mx*uuUG{EAAtti}GEhqj>iQ>>s9mK2pyB zyDZ-|z^+B5m0{=@{Ye|T4iLxZ`0y3zn?i;_8~b-XOS5hZ2q4h6wN3dC=V_jg$`h9e zBCtF^77Dbn>y0&(uD literal 110176 zcmeHw34B$>_5Xb@+e?5XEF!Bs1vIFHBrJw1`q(s7)QGq*FChy=Ly~4e&}w6G!>ysV z)mCfc*3wO}txBzhP*iAZEw*m8wPHmZ*Wy~Lmi*6|ne*n%ynAnMUTx$5_sP?|`|f3EJR$Ia?Uet3$01+z#E7Iw>RGdK^btJ!&!4JzB^p&p+m#F-_c-f<_kB;ip znO0x7Y}Slv_0?1B>l)ftPhDL)YwD~Sg)NPRCE~gp$ciA<+L<4*EO`(I<<{WH4RQvTWgC`xva6d)v2wj zZ)~Y?YAMcJ;t(^7(jh-rJVz>CYZvFA!*itIwI*?1g6DYY zuT_ZiL-8Ch`L%L5FMey$x+l*oTlcrJwY&F}FI}{~tLg2SQ?`ApBM#dq-5ztgF9gH) zYx5>7aGXsS0zs#iO>Kfh+1kCiW$RwKFnsQ|O%P8I^ZvP85bD{LH=!NVHsKlBZ{3>) z_GRmSRkro@W6DB1%bwiZ2F?$mVc8XbXnp_OvUQJ1|Gz2!_Br32av;cZ=&9h@eJK>= z+{ZGmgrv}W+mPR~wR1)t0tT%IB#JQN)Gbly<-xvZ=ee(43@&*SoYz|5h%w48d$SX= zTldR)NGRLBaHI1+Uhl$9Y4X^W3CFbpbyjD~58+G4U3&%EL+P>s7Fl(lysxLHdmOw; ztnB8pYnMK{vF!RQkoV1_FxL@NbB@ z1K!M-*Dic+a|I9h0hp*lwvB<(?=9LRu3}HuJL1^g{%*{9qd}U4q)E9li2?*J-5b&5 zcy)!+q)C~SE0agiq#$wazkwpi3py3@FN0FS6?V_YGLL|_#}>Zq$i%G=O#qHJqsq5* z<8@t;u;2R7K?x}G0YK+72uBOj>o9~)Vi4W{Bvgjb3C1wDyS+_IP723IV zSJu|O8S554wSD1k$kKW3L3krBqVQQ3eIpiP4aC44%dQ`B1t4g)2O7h*&eraXb-%iH z;qJV97e00U;IOhmyc_Vm2c255$a`?71ZFVjJ<|Cx3fTQ8e;Sti=*TPxb=&308%Vwd9ipHvN%GM5bMzg zDHgN6SZqQTua+^8#T-8t5p-oS%M6ebi)j#}-&j0$k0*;40Hj#V@nW$9S)3I`RVC`o+lrDHaELvA7Xg{N(Kf34{GuM9`JRi_HKj zY4Jjc(Qhn1^p>XvG?v^o7i}`*mBIwFu zl^GzV79EEe{l?-Q-JUFN2S~A)@5N#{vUr<}fh-R7V-Z1D7RQ?bQets5#OOB`&-uG2 zihKzwM4)bFXL01-^eKpadl}+DU^dBKczp*${UVvM_cqBlI#bI77 zb|8zxGzr7~SVYj3#r3ZwSX4HBXYqQ7(Qhp7-0i8w4**gu4)g03t+ z{am6&E1SNz=qDjYzp*$%UVvM_I2$0v;&_uqYbi>8BF6UauRYt-^XqM{3*cfsurvo2 zz|EJ(u4Cb-)|R;~fLjExTm)7QF}ugYo4Hs`Er2@%!_fk`Hn1vFzzq`UJ{i;40=N!H z@BYg(5OX`cnK5x8RwobmKA0E_;PO8fSFvZ8Ja%_}lC%J>NSRasgbUzyp^3Qwu3VY4 zE0aBFq8GsJ@61)#z7+D8%cHh;mtvWR!y8`!rx&G71E=oG6ZU*LRT)Bc5<;;DUX)e~ zjtO$RpH7G!1N61aXvaeAh8X`#v2WlPaEQDBOY8+9DA!_ul-NBNr5%Qb6Ez8e7o{x% z#{`RaJe6QkEnMqUmmyfZ4Px{gi!c3=B*~Xk2^KS;xLHOZ!Dhrq$i6P z0i;;;T$FY@vUswLfh-1IlxDEFb7!JOtA%TQZ_$rKjDBM=PhNmqzc>RR#iHk;v@OWu zAWcHxMQH|$*Ze-gqFT7tcNVXN82!fLub=SL;@bcz7CjfGy?`t}Dr2A)120N5SX^KR zNU24~AV$Bjxb}CREN%cuvFN!d?PFx|OELzs7mG=s%WzfG{H7OwTZMgI(9^c#!+{Eep;$3eLii=K

#bz@=N-eqpV)Pq}_x;+F#b*FgEP5_Vt3VciEMp*xffuD2EFNwK zNQuP)h|zB>Ua-TH#SVZJi=KwAm-8^q{07AMOK zaO)R850GNfb5U9+vUs2-A@HI!gT>Cr5-h5PYkg<&R*2DWEWY@trxw$pT#7}{MQL5g z;-6&<)MDU8X$FgDnE_I2(WgO-eq-^Qk9e}U86d@?=c2S-$l}*!3}i9zqBMiW5oUmt zSj>kQ{l?-c+dNrZ4Ul5db5WX;1}vT=V<3xx7o{02KJlwWi&hKQ`re{{12OuI#Ub(n z-1@~5fE0_Ki_)UVVzwqB@S-$>#jCd_SX2ww`p)9z5ToB%+}`D>#Ww*`EP5_Viy@2K zWDL||;6-T$i}TC?DYfXMAx6Kkc-awAmd1u^=K#fkC)-1@~bfE0_Ki_)BQU~z&bA@HI!gT>o6C0JAo*ZR)lw;)EpvG~G+ zo>~k;xfF|@i_)UV;-6#;)MDU8X$FgDm;q91(Muslzp;4J1D-5C43J{cb5U9hS-erk zKo$cpN;6m-W(G)!#axKdZ!DgCzbA{U08%V^E=sFF7Eh2dkj21@(hL?K|5>6%tA%TQ zZ_zs-M!&H*NM3+jzgPs2V$pL^T063srAY|9D9vE;%AY1!R14So&f=FLM!&K6=ubSg z_&Pv}MbAZPoyg)=83VN#cu|_cV$2MXQj0zcV)Pq}U%Jne#k&AfEP5_V6H8GpPQ-w3 z)ot`#l;-5X(j45CO&+^4;pnp{EgN9DDD4*zv-?VTGZ&E2u51{N7NzY1D_WGcL;~Fp zV;WnOwiMF4kHeTHNilIz+6o>p4kpH;w4zLL6??j}#Id_QGB;^gHf0h8NbJgnCg!5F zCS_8tOddfKy(sNND1yB9E%#FWZ127kK6hUVZ+uZ2?m{WIx5ys^*Y%HtJ>Re`hR{>4 zPz6FiXOP~otsSA;7&J1G*S8T`%b@WI=w}G6aE1PW&dJH#km~fC{wl}8*IiVOk>>iOkdO0+_X@ZPIT^5 z6QpbelkQU(G$#S=La3BMu>=$y0?>GXU<*3jc<+tXYBxC8Zc!)|@B}UQ|Cp4r^`X*4 zhz%Ixd4NpMZti)pt7lOzcy-vzIP>6B@bui<~Q1=(&kPZA7ny4ASM@ zi_oDAnw{_}%>yWpL9qn18lm@pqzTZ=W`B;*pBSW-`Y=M9C4_3CMTV|&&pNsIi`8a(cNF}kvgCLzgDg2V0TiTn zjIa>8dW9&a0^}pdC+^lo)}BI+?*XLbnC>Y@cYl%dPg!V7jyE$%=PKlQ34<&-E@O}- z$Kx1e$?f` z$#H*KaM5vEa{PpOS#o>{pdfNw!$Rol6{5HeARjp%aCC5K9$dcnG23d0aHiNVrL&LHEmk_Fn7Gk@~k?#&_$T4IFNLh|Q zzdf)VZ}2rWjCJ)2QRG1gA31Jx^%Qb^8XzUd zOiwww`-_~v&O%#qyof=%yh4s~23c}kz#vPGQy65)F_%GFjuTLh?|nzmhH|78?XGfE zTc~2yZZ_oDYz9bKj)y{=fW2eSZGNVP9G?PH4>|seL6#i<${43^yh4sU8Dz=veg;``{1$^OIev*j zT8?v2j@1%EInq}HT;-^i{U^)u*yL+!$Z?@8o!dWU&S#J% z$CDUj$#DiiLFD-OEpF8-MDY$lK63o3tEZ6Tg8(TxMm*){?k{q_kcGD7cn*UsInHH} zCC7sqWXW+5gDg4j`IhG90EcEqD^QM4O9MznyaUfV*x-)j@h1aboUoI zci*hpu;lnV2I=yO-ti|4vgCLZgDg3IkwKOmD;cEa*p6~MRzfI8`m&0v9Qh8)h8!Qg zNn9cYNLh}TK%9VbT;gkL$ng+aI?+2?)8LC4r0YgZgBLSMv)qY%jReR;jw|?N_C4Rw zHLs_Y#bop!0W#%iOoO+&dWvcAZvv#`n4{&W3ooX@-Tg(*XR^@NH2BdB(&ZJ?;1e07 z+pU-ek1$9RCFUL9`no2-lH(s3q~+L+^gbvdR1$LXLMZNV6>DcojfFc?+IlgkEF0%F%a?Alw zCC5RYa&-3>Isb-*w&Zv(gLJM!j$dPtCC4=k(nJY4p2r|dj`JC$>X$Lni_J@gC?x9A zD1)?@xLIc~NEb*vm3h5GU!^6--!sUP>A&a{dtuZOL&xgLJM!j;k1C$?CL z1(9Pj3!$r5h~g%IeB@Z_>M7)SExsmni_IE zN0!d*W_=lhtlqJfL6#hk2PlXfUtXu{P*<-IMFc|l$npEGoRsg&dCo zNXaqZQ;zQbBIlkfH5-;3cQZ(rSIF_#46@{S4}&Z@-pC+Jj;k4@<+uUmc&>!7ccky? zy2_FNfP^8(zg&^fbMkj}`_Man4dMipW1X+5A;+U->D+q9Dh63{EMt%*$Eg4Xk>jJ6 z>zdcqD@5@+Kt6K3*40zUaU(!Vjzc}==Pa(w>Fex`;T?*&tj-tj30 zS#tb2gDg4T22c<=&SD{S^$Jm(4UmrA0V=>A&a-P9LTXG!DAYEP|$9-$`rC4%&nL(N;A;%pIvgG(<2I*fbDnmJb zRYIsH+8DxBj{Mh(3^@)p1Eeg+U#|`<$J=~O4LP=eDXGGmcf6TFn&o_aDsu^gtef>R zfIND~4*pc;qYHJ$`sOEYnG+y{DM#a}Oc(Ri_eSwl<`saH97k$7>cWesGTh(F`EC|k zw?Oe!<{AcRFEMs(WRNb9cq+4$L6#h6Gsu$T0SwZ;;|i2xnuJh}w8Mt09Qn^a8FKvc zD#1GiNLh}bgE#?u$2?zCLyo)Kv??q)X3K($j#JmDkmK9T%aY?C0SY3=3s?wUy+V#1 z0QtzV*ws^v9Zv&D$#H*AIlB9coJX?ImK;BB)kNv?3OVj#kR``Q8Dz=v2Mn_0_!S0e zIbMx&Y?TnIiMA?nl_UTCEJKd(wIt-2yj4jbCVGAdaRSP*-PhER;wne}Lu7^=tIYr@_m1NrPCz-n)8uDr$nh~S z^|)ET!5~YHI~ioj@qU1U$ngXgLRYU4MKeG?avbjJDdboRkdotQPdU2#i=6j1YBnr6 zzQ7<|UeP=Lib0kfzsDd;j@L2BlH(T`q~*8+<#?Keuy>@*b6n-ff6>j5mg1+IWF@xHRO1NES+2Lcn*UsInHH}CC7sS3L?kND|OB5>J_4R86Y1yUhe8C zTXH;+LAty`j?)=r$#E2eEIIzWUK3!+@ox;$a_mMqZkG_s zk#-?+l_URYJVTDhngLSo9rs-jSdM@6H8te80Zcu5$KNr?lH*SpWXbU+fP%57r6xC_u_`Y=k%gd&dR7riL6x%hI{^jz=@d zlH)`MS#pd36hw}lE8IjSMDZvD*`YJ6szQ`a;j*l=%%dr6E_6CcrSx2Iev{nmK@gr6hw|gSqNRdLKL$A@{!}SHM+>!Q^@fXfRr4^d&<$>U*!BS z3vJ2qb_VHOMeleegDg2-z#vPGzIMSCd)965e(E~pSD$Z#nEd=e@ZjgOe~PSr5?Xu7C*eyU z*n|N+er&UAENor_`{k-mhH`jg5p2KjouUQ1Hx=d|& zHf)>#x_5&o-`8veq<1%B%(IeW;$zbS=_m8P3QUZB%{ulMSFxvJlsI-rMV(x3UQ<*pb;nrtOXrlKuyB~@m^Z)xY()0H2-@@na@4}n=zGge|y7tG5RohSL zS!riHK%XQ+@h#7y2))FhaZrPsQ6*bq2tCFiy|3B12>p;j;}c%32z9tZUqz@*LfB^p z-q&m+I40`&{Yr6(6reAC<_;d`M-a#R7VaFtvb@aKw3M5kCQB!7;rdxk6PR>g%pl!? zbRty2pjd*+T?j1%$fM6Jn83>TLWQpR(nN?AVA36i5N4mbfqUNR>bVC!cL1dNOxJzQ zilSiT?k{q_nuXTSYMRh%C4+Q%HzBlyLHg#h7oj5!!97PXPkqOXOa#x_04X`T?rRo9BkphI{I7F0 z8@dIyqt{;ltLpv6(?yj)jvT;OP>=&Mol1W`-P}IVYiK zwf7m@uhxJ1$LJkzfH(o=SmkSK$gxzG&iV(AkmI=wvgA0AL6#g30Vs$Zx16nOURSS> z<8FX_` z$72{|$#D{cEIDQa6hw}i|-6blulX$kE+j zmg5qL6R>wY#Mji2<0mKUy0!i(bD%7^=r}DoW-`c<;~Nk#h#c3ljCJ)2QEULnM~;hJ zJ%t<_08(;v-PcUW(cNFm9q9 zmnFyF0Te`zH7ta#ULlHW0P>OJVXmG+j^zL;IlAs^CgkYuFLKUjp)EOnaJ(i;msiN~ zc?MZ>+`=GBj(0K0lH)oCX*tGFjtvq*IR@U>%#h<-pHJvn?R}QoM9%#h=GW`LA?$B_^xpd8;g&d=14V;7jx&DxUVD-5#a_!|akmW3Se z1t^Fdk7FTp^$Jnc1LPyeA+DZ6jwJvoIlAs^CgkYuFLHkOSj~nd$7dO&%PZvgFoP^P z-p(LRl#t_<46@{S0fV$0cc2{0C4_Peysw!d$KNj$mq-Cpmg7|rC!ie9@ijH%SS(BD zHqmn$gEY(HsmzfKvToKb^Xx#$a@%c&_gS3~pSx;q_$0m zl@O{a@V;h-9AjpHl;ya0USK)?&eznC;~ij1y`wdD+|D3Njz40MCCBvu1(D+v7D89A zkmHE}`N;7fb9Irmrx-hq08b@H*L}@|9Nqmz&QGz>mK=Z1Af2m_<82JG_9#Hga;$?m0ei=zeN7EH4wt2K>m5rOWXW+n zgDg3Q0SY3=Zyn<%Dj|w30QtzV!qrpA@d|*H99{P{6LNI-7dbCvp)ENc${j?Gr-V>Vf%i2ty6`96tm|$Q$7>m6^^Q#pvgCLwKtbgA))6{mUA;mS!ytr@9DnNS zDdhMZKuV6T`IcKxbmK@)np^4Jv6>|I|gDg32Vvr@rZ!^e} zH z9H%hIl4CA|EIGbcthv#0+<|g@PC_Wh!26mRay;D(kaF*s2XO+*ad(lQsUgRogDKst zt!ePTGDz2rcq+4vL7HVT4ZZ;&4>=a_uNcHw2tBPVCZlTrGUd2|duFy2+a}W!mZ+_yIc^p8d9F3wBYkDl-H;l^k97 zH4`^$?r-J%I~H2Ez;=8p^AiSXFEMt!i9xzR;;GCR8Dz<^l0lXnk7bbV9Scy7he-(K z75EgFO!Qj+X+Y zEIB^NAT7r-l;f=uLNx{6*UXUPSTjJ%a{S}Lf#tZt*VK^XC16UbuzJTk7-Y%uDh63{ ztOqDa@0iX)=;{@sm;#WG9Dg%e7g>7>IsOA6B}dnN&4e7?{YB3Ave1?szs4Y)tB~Uw z23c}Ek3p6k=QGHXV*!J-99N(mhe!zJ74WPf6pLGjz43NCC6_vNXzkRl;fomLNx{6*UXUPzYk2vv9J4@ z8DDI@AL0a*<2Amfh8*LvbZ$56%Nb<#j&%&O5W+`}KXUaH za(ogXB}dnN&4e7?{YB2}S!hd+s~DuqE97`KgDg457-Y$DGJ`BR<}gUhaRbWn9}^O4 z3cRnGA;$(YK+3)2!4M~)96vt5&(x6PPB8VjS%1JFOODSo$dcn0fP%>JbQVHauMou- z0rHXKcvnv$$9VuLIlAs^CgkYuFLDmE(3TwkK3)^0%PZvgID;%X-p3$Ij^ALACC7^y zq~*8+>UH|Yi7vt#c>HetG&-sn+CrL;slgqy|1Yu$GNg}ZoOkIgDg27&mc>V zMF0hnKtbd%L|}j_&><=iMx{CC6Vg zNareg$9ouL$?--8S#n&>AWM$tdPDOP(Dv@f_Q!qA@+QQbxu?%v*E9FDMe9DCd+MTf zPtRSt`1;9vkBK^`mR&y;kEbl2@=Eca%eMYIt!(X^k?xt`Sa!u*tq0^yxZJ_l;&rbt zUiaYwh|x3RFJ)`Dh012X(e`@T+D9U1pF8)Qx#!M3Z*F{BM{Ob5zqieCFcMn8M?l(WC78@P{v>$!=TKe44II?l`kIB(lXM(w{Ndwz)@|Zrm^>9+GEZE}rQWPj^bD zJB#Y;YnE5mN0&q=SA&)d3#ZjrH&w-#*EGay>*{M-rY&nIZ*Hub*3i6oLHYc+Jd4je zt|Y!>a!Y*fX=juaRyh|s^D7$~8e5}P%{7&+HBrY|)mT>@_4X;KYiKQvw;mdm@#eMF z9-fr4q^9NYXq1xc>zhSF8zdCZinm73ibkhIFV1l)mo+xG)-^0YJX&X7il8*AUh(+K zl9{vW4vjXcOMonojOI9gIOOMHA`9aIHk)o(;OQk$;1i&P=rV0u6dA2)X^AdxZft9c zURc+;el9trhA<-}ucV{^2iZcfpWbw{0W zWZhwh2^y4uxLrX3UGi5FI;gES$W{a zz2Kw@57878t6n&9=Y4m?NUid5Ng};(s_?w>KPs!9ci2L<7d`8^frWLrmi1* z8-Vr}zc<`9(>^5jR=(bFIe0Feo$~m(SdX7qxQw4$S}R-Ys$le6U)N9*bsbIX2%pMm z+IKKb!^%%*FbnlW0r5C6o@M_Ipb>@pfP}^q?kJ5W+))}!xTA@Yglt6aMg!y7UdHPQ z7Tx(97|;6i*SGQP!1xtrfCuJ(2j+hV=6?s~e|sCST6kaQf6J{I;PNVS4%lrBizA8N z#<5nMpd(pxRyb*2 zzYrEjX2l{U6+dhA_=E_ zIK>wU2AuNT=?S%{>0l!5shoQPq3_o)pq zKSuJv{0*$YPs|yh9zEtY66LMuQxY0 z|H|X#Z;bw$I{6`>p{%Uvs1%T~_zpEeV>8XLEGcPy)E8&H?qi#rBm>a!5ePM3Fbs1&3 zMOS8)<(96^Iw3b!pIbUNw`gu|!Mxn)yxdV>KQA{Tcsd+7-UxBR7-!%$z`y_l0}TA9 z3}nSbgk72PNa0j>?$B|t0#;;5JN&vYzFOaoiQ{PT?l}2{mEseAg&1GZMT*xLbsVK| z?A!50_y_xX#5bvL4#zOr$q?^wzetOTPwMOT&Ze+Drw8-!)o1YeP9xSu+wLmGW3 zlI5d5bdO4>`%soT-(MY9r^m!6O0Q7oRBp--@1yvl^L;(?dSc4HN1YR&d(?S>!ln0r z|Ghx*Z|C$~Rj&`I<74Xhj5@xmjvuOHrqatubv#%dXE7ZeH-G-;q6NpDc;+aLW;JbGPOKPg4WtFWmed_etQ=G%0M6yyOwNsTa#ZBEVEu2gHg}}SCFD#4+ zD{+(ew7+H;*>77a?Zr*s)Bg9MV;O(a?b2Qh0zB<+0bNV`Ta>+5{JBu_bP*>K`ZK6K zlnGbA0A%WR;o-|bH{nU8V4oJs90pct;fx#LEImB~mc%(}k&FYuJ=~6FMR8#k$p^FW zeUL}E_zRd4&N>G22|tO+)7N53de$QtDw4GY524J_;w)nvgi1?Ke-VS-jCN05gYS`a zY_#ER5G4J&6Y%3jV3>YAeuNm`fkQ?lGqN6znUR;_JqtgE55e@J_uxG;5#FB5{IC_= zvNIui=0A^x6eoKb6f*OZXVE14Q2hLF{G6XXHxoYZ!_T9#Lr}KN9{e25*$eNPP6$s5 za;|~$WQN2^QO*#I8Wty|IqNV~nmCE&+=sC;#7SAsZ_y`HoRsHWhS9Rb$r(9?7$7_J zBPe1;&ckRnDD)FJS&{QIJQ)(g5;x^c$7n;vNo&p|EZXqUCO}r_Tn@&W`-hP6_MCNS zHY$Ym_T`)p&}?*Q6Bw+`8H4$Z5AA@Ht8)qvIXJWp%sO&j!%|NRJq;%}=j_3gB5~50 z^G`e}7AG5W_Tfp1IN1mrhQP`6(09RSQ_hi?=}b|!uAEcQ?1<14kk2E|ppq;&yCw2E zX8OZn&E>F~|sbl0UrYpb2meow$zczs!Z5gbEf_dtH(^(*rK1`$Hz zUJ+*%`GbL~(D;wV*%?DGa6+Y6y72m?`Ol-*=j7Rf{8i{B{)rS`e~L5s1vtgb#8rpo z^`c^KMFwIQhpyHd*KY3sSPvy40OA>nS)Dmbq{V!au{wuRzQCiI9?= zwudbDp(Qd_N|q4w2>6`Ubb_#q{38Y^oEN}p{%v5M)x2CFLk;9+xah3b%LFpUKsqqr zRksLaB1c5N8zEhkaI}*@8Dp$@R9F^~Whb2Gj{;R?UHqaz$_=Cu(y}i3mq400BBJL) zM7sVzgJ`oZn+Pe{Y1fb?YCQiWMAps`NQZ$Se_2uKu{bGSMaYQJv1JbFi7r^JN@7^seJIS&gPKD(|WSQmUKY}IN@OxnyeJ6&+aIhEFU1tY$tyK zT0Zz&VHtfl265p0yKtJ{g01i8uLz`^5YdA1T0f!~klUZJwjR!daYA-lJ6XOC2I2}P zLAqcCa>H&pYx8VjxsfbKz^Sl2ku0JA*o@`ssuGrukmb>6ITdnWO_md!{PkGQZPyFS zU1YfePV=J}O&D*^Lh{!!4{+kQ90%yYAB9t($=d%)No@EHO?4B zjW-5S2e3iZY-130q%nv(3P&)X(jdzDC49|AZjB=dfkZ)BM? zh}vTyd=RydBff*E{EuT;{c1qO2T?@^!Us|11|q!GAgakg_#mpoK=>ePBS(A(QM<^p z*FjXpCowEmfI(C{S@t@J>Lklv2T{Aove!Y>9`_vWmI*5vrWzrxjW*~eJRlyP8K~y_gCJmyx41^D&oE}wn^a(hK z!tF%WAgV(RqUPMYAhQ>&0G!lfW%DH5%NsUM3sJugQ%|bxsXwiLDU|y>~#dOMwUr~sCEP4gQzZ!^g4*z0Zk$ub~{fD zqHu~3XQJ%qhUf1OeY||)77od0bn3yJd>R*)&-cRe`5tT%kI(nQ>iM30$_6I*q%Qpr zc*n{)9dfoa3EjE{QZwNB$zc2tUSE+p_x2cka-37dJAidgXbAd-*Vn_X06#@)@D!Ff ziAR%-`dV=E60hYJ6@#8>{tmBY;L+s3qsjl1k0zhR<~7LHydDq^G6#f1%mLwu&Cp;H zvuY!a0pWOKKzM*LAe_Jkg#W8qwf2#8bB8jE+p*W9$&F+wZYO?^CU=l!(tz+u1K|V0 z=M97p2w&!i?|^U*Stbn#^Y>R*DG)v&EaHgofbjEVnKU3QHxND`Jk3D(fbblS_znn{ zk!8|=u*pE~3PE449!*}#5#Iq}2U#W!2sauC9}w;|5WJ~msR7|01K|V0{86Mc97OT~ zVG&1s2ZR-5+3SFC7g_c?Aaq7kx!^I8@1w~mS@t?0tRTx?2ZT*z+3SF?oh*AD5bh$& zqyb_67?F&i0b!Sc@L9E89Pu3xI%5?J zNdv-|fh>7?a;ZqSi~77d46!z5?W zprZkYft>mXlXV$+kP7Q&@PJlX2RnF(3=gH{4jP2MAvnz*k_c1^);a1lW6^Lt9YooH zmP4UM!_i~Nfe>dJfVqXCV@AtT95NaU78~`Ad85%JF9TNX$kK&JLGzrE$OBJ@!YMISkM44gA4i@7f4DAAi4ef$tJ)pMB z;no#)-o=I&`Z#w8{#sWEPvHM)Z7t2y>Kdx*+p23EaZ+EmY})dws%fiBXT@jDnA%)Z zy`r*pDr`C4wtAXas%x4n-)YP0T3hg!f(i@eJAAJMk|qJ6sStG4dVxUs_J&wn%5B`1bImk&!JJWi!4-zJu@KOGe-! zZB67hIEFGmpP4r7w#XgAdcQ~)V#39=UahT%TGsxt^R%@H>mQqyB!D$5$)|3e-=}i- z%^J!rYiB=MJN}$N?AulCeCk*E-{kwh8M|*a-?!T7oAvP9B6kI^o&QhjazD{ST&UYT zTqX4opSlM7R+oM2Px@AuLvD+F=NI@3mZ6J2Tlb;j|M7i@7GaI?zYDz{p16O~UFi6M zyHDaC>web^(1QA=+rC*3+p@54U{ z`uAT!u)RJ0lIs8d-$Ar~WwihO=QZnJLE(Zii(#yc{|dT2a(mhg_*W3MrC){*8!rCe z4~E_V;{fNY_!fCqymyNC=kT5X%VLzVaFVp$G3}j~x3}nNH{YTB{vpkUavox1AP%3nlpsa#bPuW6`uT2?eR!%sWHw;fvQE~<&k11=Gv(DR|3^Nn(r z$ZV6!B@5++ifk`zu4}D{H?=l9@!I;zj1y{=8x zNQrQ*t#7Q9!IKC|R2;-{U$#@<*swe*-mpg8O9ZjP`h9Mcp$sn&VZC^=&H~C>N`qfrrxBW-L>GvKXSW5+ZXYK0yxXJKoeN>s$&!)OuS(OWpDY z*qN|uMJ4E>1?1qw8|$mFuq`#NEI89vG_I_f*0N@rTBS5iu33t=Ha6C`OoL|tHO-Z+ zjm>e%vioI7K|obBHq>anDbADGK+Y4jlPEJ*6AB7{HrA{3G|$PUY>0Jlp-20h}#g=qq$5E%u@H4hSr*Vfh7G&DlHSpicGPBkRbgs#)rvW=I&kW&8PTcB zqf=ph-khr0vsGsa9Ik{Vc_LR)y&_L_@m8^Wy?kIYzN)nn?l#oUuo)y;a${2y=mOzt zk)OC<@cgXXm+mgqt&M5ar!0vcQS~);p9^7;eV`d{4Stz>FLhRuIU+x z{e5{RX-;NhA7C>*%W>O3Hx0I6jitx9srZ}*yWLl~rsp`c&o6gMa|SspGTh<}b~;?s zhd8lJH~ZYgKFMbMJf~gl^=PK&JCOqU1qCyGs8ivZJ}j~CvS~luq5YQ4^btMTu6$|gf;&H>4Zkdo$1NJ@t#%CN%togNz)3<)9Fh2Q24zWM;_AL2Aw^^PUS^iC_i zP^Is((ie#Mnjb6&zF=K7n4|hYl+jady*ylO4JLx19 z3b&sPIe8B4MT+0(z}G+E57TMqQTVE`cnyLAV><0SO6iBFblP>4(&wvm+H;iB<0`#K z?TJasSfkR*t@ImJdXts@W0ii5N{3a6;`M8l-eIM`qS9#}QL+!gI(57*+C`Mo$E$SO zGZenYBVI?S^o=S$rJtOEYy~s+(y(Y2z z{XVu}Y7=6B8*>m41>+kE!$#Dt)C&uTbensq`BtzDgHc zNdR`QN~e7~X@B>fDxG%aJV(WOTcy(;oCPX!STOu^r;;c$H4O zYf|~^RXXjZiR~X>*Q<2eIWsC!9p_sr-BJ5jQu+p!9<|aRROvC59#e51QR(eg`X5w! zmzDk!r2DmN+AwdDicjsj=p&gU@k8ypOr=wMq;^eP;ZZuZYuX5p(y3k3Hh7dy?Yc?D zx7&4xl}_z?qm@qWnzpy2_DJn|r?RJXYS*;29i>ydrj6|=o!T{RV@K_j+Vvh4pVFya z(-wA=PVG8hZ30K_l-hNXl}_!t+)Af*-DIUxyY8^ksa79;jVcd?NJ_ zRq52O+f_QX3u@P$D&20^yHvW}u4(HyyIs>padx|=ZQ<;8O`F1vQsty}O3*G*PBwQJgO ziP|Hz>keg4>C~=iw0D4p8%PGx_9(jm3$ zJytrkYuZ1F?5SNBsr`*8o!T|+okZ!>u4(5aN~d;B`y|=zns!Bss&Z1hj;Xzcs9jLI zu2AVmDf`6zTBY0Vnszg?+coW7bdHLXxL>P%e(ZKl`xKFGsa?~qM0UHTJ&36M)UIjA zA-i4E{zAk9wQEQ1@>tqX^RfK zz0-yq#2dAD+J1xD=^!<}rOh`e{ScK-TW?T0wRhThgVL$J(>5D+d(T&!KTtZg_aZBu z+BS}bZB0#?Y$7%d&n8;?3^-J23GG! ziS*=o287+l17%A1zd5^ba z!XN%QDPH%8balcGdC)MUF7rZLJ?#Go>G@z^UsTDWIL`AP_8UZc@;uvE$ak0#L7u$r z5oZY4W4`wM)fkUB)5LWpXK*y64-MxzS1W$V;&@EQe}}4c80LxBSt9-rhrYi-TdZB8 z(&>AJ^z&A?sdPuhsZnv3!gb|4qn!;FZ}>|iSYNTsn6i|IdsI4of1ZAB>-Uh3acuta zcUmwGEp5C|McW1GL&2VYnjxan-xBslmhuEPad4}b{XEjAK>ASFSER|hu9?DqNYd7H z8$`Y?^S4#atu3u>wY7y+@bKjG^OwXIFFIvuJnp~_12xO*T3TVFf!3ArDtN+H(*hRN zjq&C6jms+Qf)8n&6R85@kML% z8mG1yo`}V(+g7ez11{_=4wkKksqy?Ev6BKmU+L?ER`xWFJqLk@8Tb%UKK{3!*YtwH zLl93t??)#(H~Tr7j%On}8b0A+rPoh!;317w`ra_F(u1EzNsNd_84*duvk@IF`T3Og zO2+*BOh(M7qv{c(dgf(eiBekm>8noYig{`!c%Z7R9;hm95}J6@rfBds@QR;^;FU#U zg@w^%*rn;JOUga*u-VmDX00`mD~r#b;k34bG3=}aNc+%YA$uKme&}4N8-Vr z*P})C+|Ys(Zt?iBOXi-iFuw4_1<*yx{*pc$y%s#1U2x`!b5B?_AFLQ6E+3NMd31bX znTl4nV2KkyZt+R;<}Qw(bnLOGEL<92I(OdUg_r~E{!$gMYJn9t5XGrn25S{!vEvpm znm0dQQdm+r(`jmJZ81~gHPw}^l};`6*)25|B;$!v!1|rK1{+3C*{M3UP0g@;qSm%p zzOu1FS_lTJTN>jlDjTZR+9*!?KnZ zbphhxudz6(wy~+ky5ttOtE?4k59}*ndcu5F@kY7bpC~(pEo)Z7Q+znKHp}A*`UJGr zG&ebg4UMfeg>&aEn%Y{qT%9d%Xe(USR##s=wXWJJ#IqHZEi0VD>NO1zPaa#FC9(<@ zU)41>7$T2)jSvvt3Pmn5BGiCW2xEekaGwX$nq_Uv!MU;l7Q)eKT|;dneXd-# zthr_toxz?2wu0fN8vOXa8a2?gpxM=DP$KiSdo0>JUNgXx^sF~pRARQcQGSIN#r@BvN9 zpVm86D1W+6%HO{J%a#8;6_D0NtXBSeR66>@zY5il-NMg_s`MM+h@4>g@I~tz2!7jq(i zT5l2U#UEV63xB5-tD5|2JxhV|->I&j^hxC=9lQ#@JbzmEvUggr>wm-YPppqAlKv|I z=P$~ij_(7=^QU=;70TbPZy8lb{0Kf`EV_PLZ&R=Q3$&^D6t&KA;S0trveLFQF7|M$usqf%9MX!_=yVMQjKmebGKMF_vFZNGV_uSw4w)8&( bZ_eyR`BKtQ_~7P$2JS2kuQJQQI(7aZoax}V 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 0000000000000000000000000000000000000000..af3e990f996731c6d0c1459ec4a673fa74905a32 GIT binary patch literal 6184 zcmbtYZERat89v8$Qa4W0Bwo8zDU&zo)Q;Is(lpIBy5`Gi0vQc!1D%+-T-(>lRqT7c z>w8ODV5=5Z8VcJA+ZcmQr4ncp4EAG!X_{ct5E1-gp#7-$G2lm~00ptJ(Ms(o?|aUB zZ0FPg0jJ72@AI7Z>wMjF+y^q#6Cuu-DxBTPYDlq+?TFXpVIdB)>sXx4PA;FHT)L3R zPo9cw-vJ$y%b81kudZY+pwdd_Z|H0#^G--Kt4RKN{8VOj^2t-<4_#PZ5zK#!molq- z>GP|h`+xKjI-EQ;dnrG;>pBtNZxSwl@!Abx#v<6wqGCX;LawWxs*^E27CJWsbvU{K zL6}EH6Ot%GWV0lju!%&PY{v%!frN|jmu={f;#W{?iZ(|dhBnNFrSNht^6q9(5&k3p z$U-m4mrtT7`70=QNclaKyQTb3loL|Eit>()P{Bw!f?f%@07DXl1Q?beBEX~sO#;kF z&@8}V38MTi$net=wD5xf<|Sz5m~dHw4gq`#x_B9S7A4riCjcCm;Cg-tz=INW^LxPC zk_6kh4dA2%+xcff?NJGm`~-j}B}fTyMuM~e&q~lMzzY)e^CZ~3B*89`+p7}n<}Sqf z8Eb)l7I{i6LwDp14pL6#w^1bdEDo2J;k#L&J6Lmc8*t6h#{tD~Ju&T8+%CxCY6|uN z#l~41cC}*_*~gKW@^GCzBIHe|)AU7*DaDgDaT&!9RNyUHY^bQM%fGc5c6sOBjJKi? zI(=`KQaMOMr_Fd9+J;UaW-N}9$QvBZHV)5dn|@V9ALDq>R|}fHWF-_iX&`M{$av6pNgYJ z>y2zGo`%l0IGBEDD@@gZ^Z`cuwj!~K2nZ;NjuhXwRb`6F4|hK?x)r^3f@)NbAk@uR zR}4nk1?wHha4`5=aVp@C7F$SIsVS`zB%Fsf#Lhy^`Q`RDsKwV3J}EpMRJ?T2&Zg&b zx%A@DpfNa*EZR=6n4EKh^q#cs>n*#6%ZkN2x_}h1Pvj=^22P)k%1I$;SZjVeuRZ0;jd!#cdXv2O5tN~gUp*h+#HS- z?txY3+?YCGWP^fXIeBKd#k}Db3Kh#|>3O$grAuyl+^Q`2ZaJN|a&F%8(vCMhJ~L+c zu3N06=PbwaOyBj4tTW@eIfm{k<`GNytIWHepTLi0#Xe>kJ_L}?QR_3F?OR6K_n1*A znsXIlikW21ip7kQ=`C2EWIfBwONTyW00u=jx4??7GbfxIxxh1WZZRl1!b!i;XTbb` zrXlde)O5xu7XxrscA=_3lxhbHoQgf?SouV5-t-{Rnv7YJFWWI{iZ~$blPQ8f9H#Oq zhb6}lI6=kA_X}k)1{|%NlxkFTCL-hNGsCeK!MRa3^L?@bYec(bGa#GYYOjbnSmUcU zwPHna#s>#*>QTZLf?=Q%ET%{-YvvY$vYd6?RnRBaqo3{n=xk!_w%ZbWQoB>ViDbz< zve*xeA2`-tvG8^dSuZ!g7mh)4a3GPKOC-U^-W*sZ3l$$+C(EAeTRGSw(Br|9)n-FZ z(h=Xx7Onc7A@+~#EZ9ZMaq&F30pwm=5P))VaVx;E*#5Dx+Y>uxvw`CWGUMc~K%l<+ z`-W1z13M*)=Y_!=MizbyKB9{qyr*?T^ieo$+knPDEaKBJ(%x|*G}hJ}dK@$)->Al? zMufd}wNYQV;mZonD*S6y!t{R8`@&2-ICL7khJHqJuC%<>b=>9&V_7NQU_~HI*6#DgU^MX+@ z?IMhbu@O<@UX;&@D_3RtSRIe^t$4GJ@2unRtK;!)q4XcC65*YEaJ9glGfgzwP!pHSRU zjaNU7rZoOO(x1`zTZsRJ#&072QyPCSVYzCxd3c$4HUDaUR>{xjG(T?=e_G?eK>QOL ze~Iu}jb9@C1C7s_ug=L)jem{ep3wN? z@ynFY8^j|dQCM8m_*==3`i5hk^{)XF7A%S`+wvW+@Yh!%{i7RI=ddopRuHnu3=uyiVaZB}dl0QSi(XzAFB|k^pm@ z6E&a8+b{|09i({FtuH+Q@Gc*&CqX_3znifv%7)>6ini(wRQKl1#Op83-;$l)=<#ts zpwIu+eh_SRpBPicze#hf>-K?eqw&ws2lI8>oH%|I_3@7ar~3qoU7@(|BB(36?kx1_ z9IC&CNkQqAO|{l_@tx2p{{;Pqjk3r5F?T(G8#vu3Q0zt;_a70|6RPTUkK>@-$o|(9=oaa&S}Qx%E|Yy#frQH{QLRJS zDf$@@kkitXk5S->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 858e228f666ced081987ad255617e57339f4b668..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 617808 zcmce92bdPs`Tfi`mbwc|S=zD`sZs@{NfUGt6vT#zf{kK9R8&kXD~LjDM2#&LEQ#1L zi4i3#R@7)DnnW?0kZ5!*F&H(H#K`}g`_6p#oy*L8v-|r$JNtZX&U@cm&bja0xp!vv zqAAn&FYtXY+zPyL9)C?JnP7IwyXUPvv8nmZw+Y@zuPNSpdOf@n{4O^8h!C3)`P><} z4nIo`>Uo9uEW&GKf$SJrFu{BYKfB0oFZ>Kk$WP{Hw+X>l`E0RT(D2jqstwL`ENl5y zf|p-)lGz`A&JD_OWAGWK<4>mR8>H(SqzgZ{1_cX0!}_sqd>t0}JFH*=e)0DNet473 zyZxjsx0!!ib|Sw|xKzqH;nFE)fB1Qr`2|10XPE8~q+>a=ZsmdDtRTOncG(fsFZ>LC zdV^10eEivi5?O2UpEOT4D zr~%?Tuls!HM?L|ev$RJR@bw@GuGZ0X9h;R|0gZ&k2t6Jy;mVSlfL{d*>rS@-vbXPu-W(a&RTlr;w8%#cneNndeRba>DkN9@{T+H z^fQ-v3r;xo^s`R#7My$L;$`><%;wEw(s^esJMPS7^G-W%@e*&|yoINoz9iT)&pTlH z)Jglz8#ZXzpb;#6f%*%7kt6=0U(p2H*_{?6P!xDa%TI6T)zZ(X%_hMp6K+G){;)3)8>#k7Pm&Z9)PCJxYSeyR&Y5a|*th9vw%Ttaqvy?6 z`SI{GP+#Y@&}hnBTMbn@#iaI`jKL{$`VWyw?1l z#NTX+k892E(frLO_;{)LJ&eCu^^fP9-~IWURsMJ;eh>Zo)HT07wr0&=YgT@+W9DH~ zw`|_pcA{6a<(c{BV@uUD6TG@}VffX8vTl<-Z{xXWpu=khF2zU9%AKuh*8J_U>!J1X4;-hBElnuY@JqZ<`vhgkX z-24tcS3XH2Z+TPsQgC6H%U5v^iuoR3lV@Gcce{4gRp3pqnj32_pZ>yzvd4a8JYTtr zJUq37Ue|1q6boQn69E1D7@%$v_pO=ocFoEQ-uBKedwNgouY2u(aJ><4HJ1Zf^UM>B zyH8O)Pmdu!kck4QLk^lrs7+FVVE)u1$y7?S9{z)hp4|y8uyaFuN?^*436Z%|PJ*24y5Gqg*k0t`u5c&xDg?V+&LB|t%RiK?U zD>wUPzw|EITz1LjX#TQaPI(`DR!?~!=|ZsVms`soGjb|>_}P`4yFIhBc+HgGMGe+$ z^*8%lpV{8TfLrOO=E}CKkSS}s1D)dXau(&OTI8P7O9@JmY`RgK{_(%Nc5RvR0Udt) z7TzwO@yv~tP^{>lqJ@XIdkhMpC= zx5O3EutI#0n}Rgr2&NJj7&MHygZ`6i;uwx2#Pxt_M&iEtcg|}*;$DSmEO9?4kWAcl zfWww;m!qHuTlR4URpy|Pgl!IDt41ErqZx@L;}e@t_R?d9jC_~pdg31Jr(2- z*BVejTu~BnSCY88uT9P*t~iZ2f~mv>1`Q*w2TGCg828OrnTdN9rWucMcfd53xYY!b ziCYXffw-#_jaXC+WlBXM)A*L=hchG}e%Yfm7VxNmkO64wPOLrxvyd<8kgeF%pEaZQql z`-sFnDLIq4(lp`-rVo`!{*jruS7DlwxI3)Ze8imt(^%q;A&^YmIKUx0&N1!; z1v$jkD99mhAfSM_(kOA9NR;!2(g7f@NPLjErfI|xOeHQbXc%$hKF>^C1xzy%SNHdv z*L=i13Da2O?k12-+$z8c#NDSLhq$X1Rlo_veW4(SxIZY!A#M|(fVgH!#MO|v zYs3eMYo10N!BpY`gN70J>L;0ry91^fi95%7%}3lcn8p$}j6iaas{oup+(-pE#C27W zLtFu%fVk#K#4RFm+deiqleiXX#1Tv-E-+{qaTO><#?yhiy3E8q3Db zBoj9WZ~}1`Daax2Lq*=~@j>ER zr4dIkmAJs5VZ`0>x6H(y1JjJeO|xF}5myb<*dEt}Kr(T4A0!gj5-CGY9pe6}QaQxE z1t=h{RT6P8k+_G%2Z<|7BaUDyae+a@h^u=)GjUJCG$V1>Sg-krTL{xw;tnQ|Ox$3= zAv@0Lz+nnaIH5Lc@phq#jf1;mvn5m&k=h#MH85?5`#<|FRwKPM3PE`em?o&=mg++P*s5Vu7^4sj0v3W#f+ zL|k7Iw^DqNxHf6T5lkg6FlZQYPyQ)0ao4~!BXJ9@*L=i{g=uV$>q#J)xFWy_#Pw5< zLtHBbImCVWUXHjnNyOEVxL06^oJm|o8gT?ui3A*^u z#u9fjfn?&Q0Zt%pse&Bh4p)#v+-N{SkE=)`ZV`!VEj~zG+ce?`rVo`uf6O&; zzED{W(~Ldt>vwWq^Yyq_U>Zx@BLtF(y9RIqagQm;A?_9hImBHIC?KwF5^<|Z+-&hd z;@YJVM=+JRz@TBoU9&CM#QBI@2-A$jjkR9$5!V`~vBd3sJC(R?fD?%OPC*WF?<>e5 z?j=A0aqW_bTTkL{7at_9eHw8DQ;7=<8b;iySiT9f=z#K1f_;8gT?ui3R<(fEOs2mH^j6JTk^_s88efVYqajy|bChj4?3BD`rV&RlmAJs5VZ=T3MrPtx!Zagsv#r;B#0`XLY>#V8Aep$Yf15~LC!`EH zb%@)gQaQwZ04N}?V-j(FN!%v!LE<{45l1kUxWJ%c#C^RrGjXrLG$V1hTd(1`Q)_?CY6{ zYYo$k#C`aioY#EBZGvemad#3(CT=C*1me~!$RX}Z1v$i>2`C`0a}sfjNZeHMLE^fk z5l1kUxWJ%c#I1ZS*TngbakF8Xk+^}@Yd+!%U>Zx@$FHUm_X^+y;{Kr^hq&J<$RX}= zKml=Gl89SP;?{}}64y12ID)Cf1qKZx?v-C>Chm5aW+ZNz^_q{ksW6QtZU}+o9@iRh z0&#mQ$RVz?f*j&JKml=Gqr^FeZ@m)cyru4Fe1G}5^gD+R8^52qbLdF<+&l-L!3{NW zcMcr`cq1-P^6FZ_dEK^`(G2FUqWC+9meOl@=g^)kT5#vkeFD^#a-X_$=mG4nyB1#S zF2q~dg!ay%O~k)ckiBzgE1|cO3dFlV>LgPs{}Nb6?i|`W2se%3&Y^XK&1c>GA(PxY zhjs)e)qr4Hw~i*!JBP|8^^OUF$p)I(JBOxD2;1*BFNO8nQui}_ue%a&@pld_LZZ6w za`yVpq1A-mSCGAP=zc;kDahWb@)Ds36=ZKf`75Do1Y+-R+&hQ7iApc8Zb|F?Bem%r zFir0L%eCn_)@w}fU$0H4!8Gjs+chwZK&1DVPErN0031r!-Z?ZACUqkfWcgS~sH=i( zr@oj_0idAwC*C=92@SWsXmTcTjeF-%gt!WnB6%_(LR{SonTdN6rpc255#p|aX)JN) z5lAL(4&abDJHow_EqjrIY}npN=tKoM#7zYh5SMu8&~NFZT6~bW#=UbWLfo9^b4?sG zP>K*Y7^WF}T#@yfug7hBE`hks1d@rn18@RyFDl3(?tTS1#H|Gs5SMu8&_77rLh(W3 z8u!kj2yu5jo0+(CV49J*Y1V5#;;La9+vA!LNG7iCnMC4RB4x;_L)<@ADu=kY00qP) z-Z|8AKM?nj_#knOd*@JuxVp`miF*>J8Hu~bdd)}NLYT%9cQAou;syf_*>OVUVG44H z8>JwJxGF#aafx>h4Ipt}KW%a*agBTDP=vU_C`HC&ToFt&61VNCoY#EBJp|KO;(kOR znYeQRClL2z1v$jkD##)3BtQXiiFXc7C2?cL2Z?LkJBK2~o%3X_iSr%frol8Lan;sq zKH|RqRRVGE5=bWQNx%uj{Z&B@aa$DR5cdF}fVjjvhZd5!mEwcMHSV255#pZQl$p3| zV49J*h1P36;>N->w#W4(kW5?=-~{6ODaawNm4Y1NzI-A_T;iQWt4Z7|FhtHIu5s@i ziV#lo+Ts2CO@fi2@&oUGD z3QRK|<8Fs(EOD0-NG5I}-~{5XP>@61847ZUI|5KZT;iQWeM#Iv@j>Dm_s*dRaSI>G zHF3UBITofFdt7VlHD8bWa6?N z67L*ZMB+Ay4-(h7cMe5}`})Dm#JvL3jKtk;z2+ls8BAk|JDNZ;abp38>^M_i$0^7m zZhr+i#0>xx5SMu8&}tG_AU;T3>lNe>ccp?H;?4vV5SMu8(0UR#ReX@R#=UbWLfp#xa!s7?7&jZH8HpQcz2+mX z0H(3TeSB{!ajyVQAnqRua)|q#f*j%=2NV#Oc<0bdByO$vAaRX*=TL;WSJr1H?sk}F zByO4Ynvb}tFpVW{2!Z4t*BWpFaeFJsA+EE69O67c0da|U4%Lykx9%}Hleoscb0|Vw zYm_46>A;6S%}m@Tm}Wd3SPRow;?5Dm_s*dRakGDtYvO#Nav)4I_P7G;HD8Z=>+S^No+6M;-0gr9hiokRAK#(hcLN#cXVHSV255#nyYD>HG+V49J*sn%;g;;LX8+vAD}Bop`Hor%OX zN6L^>hqxUol|$U`0R_Y*-Z@l5;vNtmB(8Dq9EuS4;T@TY+XT~$#I3bn^AUFvOk;_g zP9T}Mfq+AHoYR3>3UY|sM?ns8T>u5dCEhu-h{S!l&g4wu8u!kj2yp{Zij2p&0+?nb z?ycK%Uh@(608C?vyOuyQamxTF5OGt zc3ZBA^Bv=+!ZagsRn}`h;=a5!fw*@FBons@Z~}4L732{2f`T04?gJDMmw4yUdJ=cB z_#knOd*@JuxJ|cYCT=ZEGZJ@_^_q{k(J+neaoq_d6ITE@fw(>ja)@i8Acwdwew-sN z@y?-_NZd;>M9w6xaqk?85LbXwWDJ#W-JF@Y2Vk1__P8%^%z4e%<6eSkEO8GL zNG5JA-~{3xRggp6%?fgey9iJ~T;iQWrTc@pBg6-ZYur1BBE+q|A=kwDh&u_U8HpQh zz2+mX45qQf{p7$Uk1ciG@jc(2L%%z6 zvbl5UE&1I14n9-v9C{D%Msw%T?|y{4U2ex)+MPo?=rz1^=$|mI3GN&kG}{1mzu`W0 z=g<)BuRDsaCld+&af`ikXgu-96=d%mI*ib5fMN^8JBOA^rc(alu#DU}wBZ1A57mwd zQ_W|cci?{RokLp#lXZc~5Sm2q9NH0>Yz<5%)5P96^a+X}`CoTkSidcG%kjPLP`v3o zhxiZMg6Bscg_=E|vw!9Zd+t7x(7g)kkxMn3&{YbuscH$GrJ$a3Kr? zD#+e%^cO-s1lpN+Ghy<<)0?Aoa`UyRydx?P)oevJ(f zl}D>e{2o9k-x0ait$|71e-y<31}G%g68dv2w3*QJ3bGEpxq$9f(Ab>Ak%X>N(3l*w zoX}YcvJN*AnysKwxl}s{?W>@1IcUf+fO;s%-W7E^p(YBlk!=m3&wgkd$_nZVLcbM= z2chr=wsVo1GWx&%>#L$QQ?_Q5V{?=ud4Lwt*!Hz)rV-&h3e)h&5)sZV07Bt7>Ubs= zGV1s#ARPYqf7w1=9vx9^KvU*o@HpjSWRAWaZ0!>OMN&1$+0srQ!9wJ?ERhsf5A{~=z8WCwZOhb|0h|1<<^v#u)G28Yp zu|2vVO(+2yj7sMN@&P4?v<7(2`%TLG@SGl2)5TMOq9Wa_Q_fQ=cSFRnAUZNmdUL(@Q3UWkx zu!0$|(gytdwt9%P3rdmkaR0^XG}DMk zUxaC_NFM}{AksG!uV-Sdo?jND%2j1vw&Z11O6~?^|WPThfhGUI&yS(xtH}jYxk4 zC=h9JqDbS@o170lLonj$?|Ac{1+X*yP<4fuD9^$_Xm3p0!K zm{ikdqzpvbG*P7S=}pehDA$fif2tsxs}bqt3UWlcR6&kN4_A;Q($NZXMA}V3 zR-_{-(jtK<((q>ZSdlj1-)PoDq~p%ZEYgZp(}+mxmRpfVCi7nh5Q@|?Hkj6bY8kx-BCpM*-%%2M=5NR_jQd@X4nIE6tDLN!M7lvij!1u`AV;L%Q;-$ucDDRHfhf}O#{XE6 zHsD`|)os(IlOHxfEBHa(BVI+-+v_F6Zk9ad(#HS=B5j^1()jcy=W~^7N2GHVWXo$rI#EH6NP8>D5ovP;IU?P$%(jgq(%&n{ ziqtz1B7H(2iZp!4L99p{@b6LUA=0nT$}G~CQ%xfxy$z9?G+QN#|7JejGfpmH& z=QosV8-JHG)nf{>sm$U276sV?nH8st737F?fr1>7PE(L0(jf}6BCV!K+X+OGh7WXz z6=?(h6>L33I^&GYBJGuG8WHKgmnMjGJAed{7Q=lAIU@Z8sj`T4h4OAmHzK`Vq)K`!r(hpCy&1OY9pCbLWKon{CppICPHsD|U)^m+gZBHg4QN2KcjWfAE}<-(F~q;d?P6p?;+vMrZQX++u+DFcy~C5kjYy~+7~ z<=PSHOA4~N8j(JzAV;LvD991%xe9VbI#)rCNGB@DinNv@?JW>R8a|XHR;0myD^8xw z4-6VMnLmGVn(`vcq9amGBO+}E(^!#yvB-+SiKOk3Ce*JZ(*Gh=7Li`7yj#+ZR5k)i z5$RE}DUC=k1Qdw0JW-_a=}pe#lxs(%Jr!ijYeZVAAV;KsUuYZ35$PKWazy%=f*g_F zq97~Mbrk8v0#T&l16X23+JJxET#rb)X+dU@u1z(Ki1Z|w#)@=0fKZ8!NY7A^Bhn)P zWfAG;Ct2^7bR(4tmMHmf|BKj^Mx@&S1tM*oDAM@!Cg+=!Ye%FPD#(`Ci1Y*nIU=o5 zkR#H83UWl+MnR59zd6x1n-%G1iu7H9DAMp@GqECVz`v=khe+F_6d4cqpPrCr8WHJc zn8u3q9smgPX&(hSB5eUEi%9RDZ@pX6jZ|I+lp@lTV^bQDUJWP^ zX+@$)NQW!Pme+{1qk)^csOE z((oZdu_A52zaOuMNMAiRvqoPr#Y_EeA~(ozLkkycZrf1hhwlp+lum=r702K=k_dWf_S zN|Et!|LxIfrV)|;7N)Tx-3TB-r0*%n5$UslvWRq!a$!j~Qn?6Fib$(tQyP&@0ThU| zU7|?i)0>=&m1{?&pUknXVasbo`nrM~k^VwKj!17(kR#Fy737HY1O?e!MJG_CH3Ctj z;lrU~McROWD_;+ht~e@9d6C2Yk*TH;k?sl8P^6I+rwRa}NNwAjdD4*zat`-h0VRmE zMz1(MI@@};hfj0ReFsofq>&Y;@2iyd=xSD+)&UAc+TM!P7Jekxj&yn_=lRODjlav8 zYKnqvDs#B+uOM3>v*J{yAV;KM9cdfD5$QGsIU;>ZK{k@kr%3M-h$0OigcU1Nf~o)P zG%#q`6x4f1WESbqQcWWwy$q(YB3%L?L8R9z$PwvsKv_guu3T8sjYvlTN)hQF4!7m9 zDb1MlzkmXfc1RRye0r1fCgs`@={g13T#ZOqDaaA&$qI5rIzvH@NQW!P5ot#SS&`OK zq~9H8+JzzwANmz5Qi7=>4GbD4(vc`d#>0KfRMUt^|9WVGNM8n!AkxnjQL5@i8 zQ;;Lls}106X~^wWESb7RMUt^_l0R}B<%$t zL8Ma^k%ce9UZGn`5NINBp zG(Nq_`BmlG5$Pievbh?OUaufWq~BMNBhvW_azr{sL5@iKE69p;J4IS15Jeh3xGq+t z1XD#C7&J_zQ>SMZX;rFeM5JF%OAzTh01`yHOF@oEKLC_Pq~|LamUJVPI{>AKbW&_e zBhrO{0+Du36lr{VlXD;C+7W3B1=;c%k$!QYZ74^ie^8Jk(oG6-M7mBvj!0K2$cofk z0Fj<75Jeh3q%T&a1XD#C7&J_zcTdeM((_VHBO*N*rm>N91b_sQ&QXvf((!<@i1e)* z>)n!Wr1CAG6p`KvnPbfJQ5d5uV?E65S)Pz5<6ZLc6l zr2jp@wv8jw?FzCYt)@s{5QriTA4nK0Qi7=>4GbD4(p~#!7U}O&O(P<`7pAcyT?-&V zq>n1d5$VlKwGC?(WIChcB-DZ0Uk6Q`Q!Ec)zBQ@7ERa z{rY0Q-&n%;o15_cmQudo)|Bt-n(_V4=6t`q1>b+#lJDzV@%_FszCTdT_lMf>eM4Km z|ExXVe^JTzUv}dA#x8t+qKfaos^Bt>ycl*7AM(I==sP1K&T`%=Zts^1W_5 z-#^*G_s={Z@1Ixmea8g8|8qXyzpC}OO!*e~0ePP;x_rvFH8++$HhIe0vd1<*#eHkG z)Xl|5EYRvfDmNy@rsWC1A`rE5%D4W?3%(t8;WZnXLEeXEo;yVznkk=~-@#|vLo)#z zzje1y!h;@9##`(&DuZWZ?x5H3p_xy@xF&pP=5hnn-Nb$Rp_$lU*Nd*pi0uB*OyZX) zNIf)@&|*Nb1u_rKluV`kyC$Noo?NtR*DmkuPBmMm?3}p}&+P(t)r-t$-FAF_xzXh2u#EHU+TA|Za;jltHN8tLo?4q&92Vb zM;@9amD~?u&&s6S`VK)}ePkpk)fO2hfp(j#7|%XeOa?3bGD266&d-Q8|)# z5GqxWItE<;=IR;#~?zFDaZ=y3PQIC#DP*HKQvQQ{D*zh)UZ^W-k)k3 z5l$^kV}-L2KqwqX9aqFcMjdAWN*E|@KvU*oa8u=Cq-B<^JqS>Apfuz{mGbqmwp=#l za+uV81t=IO#XmHYM)B!)Fy~(=*J?qTscuq`&2_>>fG$*!BhnKTpic+L3gJ{!|RMUt^|2W!;^hQ)RC!=Qpgd(+V{}S8d zBL&%DR9Xw@RX_)bV zd0sg-xd$jl-=F4Z(5(!F6CM$(8#y8=iM=_Ca?BJBexi%6f|$9lJ<8Z(Akz4UW>Tc_=}pen%C#fXVg=dq8j*f7)HakO($^K_ zi1Zf1(N`5s}^r(^!$N z0gxclhZN+9^jbh!L^?pZu%sKQ%mkDo(l7S3<+3S_NZTW2Akz4UW>Tc_=}pdmP_7-3 zZc>oV)rfSRf*g^qQjjCklNIEMbcTW)kq%do73tR$X-9!5(nfx0rWWa;12T)WZ>niT zr2p%mAkq&2B#5*r+=q}O($A49i%2h3-Yw}yD)+NQksEI!XZO=%QyP(;0Voh@{6jM- z()jcy=b_5ABhvN?vgI`*{ck_p8jeV}E65S)3kq^XdY^(EkzTE!s@(iTJXIqJkWeP6d=jq<`sSy<5_aR7zN) zWRczzo6?B%RX~AA;~$zyk;bPtIbWe%J0d+pLAJa`q(>;o5$PBOIU=oAkR#G!1vw)9 zq_=H0E7Fk^>FWYfq>cR0OfAx;C`HD3(m(ByW*QOc&tV#hG_neGGk{Q}ma*AvkEazh zA*bIP3Ed4SL8Ot%{ISY~og6n)>c;_!iZn8rUl5zpOy>6i6o@qbp_!bPk56xM{-~F& zvNM_gs)B5J&1C)~3bMV~tTTNq}$o@{RN^(8~LG`TBIlT zOjBND#c5QkX+)&0U>YmZuX|X=9FcZHnoz%vNOvJs7Lnedyj#+ZRDK00MWn~XrZgg5 z0Voh@{6jM-()jcy=Sj-7Bho$!vgI`*ZJ{7Xq+fKm4dsaR4+?Tbx=BHfNY^RIiqyLV z^;#tmMcT*@&D0`&x;nE+uS+$Jh;%VbLy<-%^JfAGm1x`E9PZCnkaM`711LeHHG19X zpWUo?d-ya5-3}~K^5K4?N@|BHbTY-2bC%nrTF& z&%-oUr1t|z5b0J0IU;=&P!^FMq+D3ijY!V~lp@lK*py~WIucMI()fpFQf~3-P0l;J z*eW|BeNREQyhfzYD##J(JqmI}dWC`m9l zOo}uU`>QZB8^XPa&D?zJ0ktOt!)ikUL(>s737F?qk&%`4gZNkzN#=(unkKK!Hf(ADT&##-}$qpQv0rBAu!rTV5m5K?-t2TA?6Eq&r*N z25?0Bo`M{aKC2)r(#;gM+3DYNCWDUC>X0SZJK|Ikc|G(Nq_`Dx|a5$W9uvbh?Ou2GO9 z(j^LVM0%)#9FdMxkR#Hr3bG>IPLUP}M3FY~Lo>BV$F|BW($=Y_5s`k_GC`!T0Z0(( zKNaMN^esSHM0&b%VM#Yqxeic@NJqq`G$Ne?C=hAd0sYQB2^UNYWHPtjC(upt) zBWYyCsV{&~q?R$W;&hOLoXPxQfD%NyLEk>|N;B)-PL7)?^?v}0iZrs~v^F-SnaqC_ zP$1Iyhh}mzKR&(5`E2FdnarP~AX{EDnLl1ZqjKwSX2q$Of*g@HRgfdn&zst|aYXv2 zf~-iZDbkGsQKXIh&`d4Tf0kwz>6TQ}h)8dNX{<;N2GTv$Pwup1=&bCpCVl%5JlR^56#pf zU0;}4q!*-`MnpObreP$Fh;$TyP>GI6k5!N(()|Es5$PWbtanSg5vj)#C5!Zq*py~W z`XZn}r11~Uq}<}uo18CIt{st{q99vdBhr})azr{pL5@f}DaaA&F5k9|Bhn8PWJOv_ zk-jVtMcT*@&D0_-L@6@PlfLbxnMOqVAWUOLdL4iSkv^^74 zQbhXguJ3Z?vMG&7yCY>F()fpFQl#i1f(Vlt!fI0}4bM|Ikc|G(Nq_d8~5nh_t(cYCFnVBHc`pUL+7j+Q<*h)FOTSznMjPRjO%3q$j{MR-^|4 z2$krF^mGL|B0UUH7Lk7TAM4$cZluzhB}zWr|13785$Rii0+Gf)G?OBYPj7O*LAiEB zdcJ~ed5uVqQ;;Ll{T1Yhbbx{!k(MjS5$V_ew#{Zmx}73@M<9x{ksq3=McNjn$auK_ zcxRevM5Ir_G*+ZP0gxclR}|!k^kG0*M0$X7VM#YqITcWfNL$9HG$I`aC=hA6L&2k;XqXlOl~zZ*o3JxpqW4OhLB1Mx-4Sm9lOo}u40nK*aiF%yrSIPbZ&Hp?%c^E`T@1-|Cpe2-QAziqWeo>$ug zuY2+O0=|0to;MD!qwrdUm%DYwj%#822eGeh>U)Jn#U)Kjn>MTPi`$eI7ZmtKOjj6w zp$FvRc~xDSG;dl|+M={ci)JmFH*3RUYC}`iIS#fczCM`=!o0d0i(W<9S9~kFTBJO+xvn z)z0t^@s6xLy7oBlgxV98Me0}NURK-Q>s-4>?NDzo?<8*a&f<42At5T}>t8#-8(2FCxfOX$!B9J| z(oF-Arf#mi`}?9iTdMO6pqpQPf9EM)URcz?P=mf{GA}Tng=SAv^S!y(6iAWTBk?-4 zFUI}?kJ4{p(6(MHe6RG{=j@9;2F6l@w)Cuhl~;lN{f$H_y&=Y)D}XJHeOr8bUiTRL znb=?HvGYvuAa$>+vES3%1K+251MxoElxKlK`+H(f@lWvHH1>>OdwPfCUF`2O_W$xe z#U4ga`donTS9t8=AA7Ii{Z_MQy3ak)jqS!TDD4>cEo$%nDnR?$Hsv?j!*ry9e4|$>Q@WR8SQiC(mKe4R(4xio%a%U$PL}nCLzw=V_??<-g8Yl|POX$6-y)0YBVlvX8u>hsu_){0 zL-t93O83B;`*<-Gdl-Ln5BblMo_&k;_D!u3-toH#?@h4J8Q z64M^iXXDc7eT)nkRqU2mf!A7_C4MhN?ro5JIo`{WrZvh@gxFAsZ)J(8EYKF#MsN`eRr(9HkiG4a0z?De|vE zxw_{~Ey`!qV7s?K%9e)zX87H-9{f}5BOyhbjI?d)fJ40RERE^+ND}X2Aae-Z6=}TA(9Z zt1DW+9r*8plwG0U0>ejE{<}i0tudT0@Opr?kpD{f$P)jCVZ2j~(~FS*iQZ(4bjbf8 z{N>-~@A=-r8Tqe4+9>}#70Jr~(caZwE!uvTcYTikx#0h@ zdhvf3#%fm}&yfGi&=>FYZpvSM?;(s*wXc{?1 zODakMlshBff0p5Ygz5j;`Tv38|0J+ghS4thU+bL(PZ#1Z|F+fee$y_UX||Jg|SNBZw%iXY6vj`Zc5jA!k; zIVlRP;w}83q=H(X)<+s*{fB-6cbPxJb0wzd=!?Jk3eTrxkBrp?lkdzx(sKMOqxLW* zODsO5>|qV;XP8pTPha&fKS%wNirL>VrRF60MVmtBNk>?xq!?PKlR~DNb#2LrKJfmZNv?D4h zh_IegBAI5DvT!6Mvl5aAODW&zoiEF$FmdG zlV>JWF(%DS4#Jr*M1&qof$G{dsQ$I&^@k*FGKg);`M zYYX6PhZ3Y<4ePtHm0Muk&h{=dS^SZZd9t|j-U0|s9E+a znR%mP+3Q5N)VR#SvA2~PWfvhIo+C3~mYAhw8QFep3HF!p8+!?B9mXRnpZ$tC$ea~> z3hTsN>6P~N-`x1mIVkokM#plzBuZMp(#uK>#=RP6=|u-t3!)A3LA6W#XFX(-_%Ac< zp=AJN_~5)5XM0+q6s^$)?a&70crg~1<2Pdy+qos|eC#PVEyy{e7D(3?IdGnn=l>G_ zY1IUX#QzGUYmQ%G{BHxVjAIqZk28EN@td<}68~EwReiTM@KuCTGcJlw!}!lg8pi)N zn2iYIe+PUo!dZ3&YQ*^80p*qWUyjnyODX&@2A2VEXKKbzrf(0l41Xo4c?-N+VfKSF zjqS0g62I%;{vFY7ozV^j@WE9JwoP-BzYpImYjgN-V)oFg0_O?Ln`g{iRsV3ISPgGpD2~Wy@HTE?v=3*eTZj?z0%v63%zo_QsOUjpl{|)KlR;MYHFCD zjAlH}QUMa{7-cvXU>PJz`uNop`*@UQ+>+=^Ya$Z=nVRKiRAC&J5e8!$%PC_Ij#^}0 zj5ZQ0$VGj()=15G$!0DicEOiol&}zG?t~I|MILSN z=ixUu#(%a=eK#Hd`=Dh9pbaGcSL3rM<`jD(hZ4Mp@xMFx>IY>en;nskO6`gLz0ms1PvSq>Eye!&$NxPs=OppJFFdmUhVj1- ze(Ct%8|AJ>zC)pfD!dQGDsBrzJc<9E@U0vuy@c_oRT`r(*6X8Tvb|6XV%-`mFj|U@5XS%B*o(^^u(um(=AjOK zk&3Gq4U7Lg4`T1*=#f!`M@WhP98obUwE`ZVM=>5U-ZIiNqH;7)h!$#ZhSy zJP|7ntQgHW65;WeD<#x?87%3W@t?lxyGi_K{NZ>;;y?3ggSf%i*Bak>1ZJGAKuKCc zFB1Pdpe9YB4~`~FfD@7U-xevO@t=K_af;>SD5C_w%Z(?V(X<01F`}XIpQ}wg{_X_YZs`o=}`yjV* zsG*Jj%-usCeb7d{kgI;1#Q%NGG4oJp;7D&I)=^rZRj1>V@qY#`zbe7|IPk>rzr_EM zKqUSj1XWLlE#v<%#FG8MVwra!c+l~G1WL^KPhMvjEe*n4eM|i2_+o#sTZ;Yvm-s&y zoa^|1G=53^AB|Q&5KJ@v&j!n3{GablfV!rEJFZwV{?A4UCH{}czGHw-^^Qf&dV43} z)fv|fb-~_afVK7J;58S@Jp|G8M64WDddHjoUBCA4h!vO4@KB94tYOG)AzGmyE&^oy zKg-1b10wN%2HJ56TI_7J+>t25WU$i&t8OLO!}vebI|p@fexbD zes?NTO$2Wz;_v?w{~1#l*LVie4W%o3Yf5UwioXeZ+dMmfd|<}beL*ZRCHu@ZkB@EOMco?yBfis^?J z<9{`B?`L8iYp@4wCH@bFp1Y&pbwWR_f<;U4)CDODQG+%pmt0XIfvB0Xg}a1P@;oj$@o7B|6ieQ4U7MeqrcvTK30co2N?gicz1XoL7(RZ@&9S`tc%c^E6q`2 z3%FW>vi=>b?5{)rzw(|0`X;z%{J$4(?_Z2TV%RytzeF(&>WjMDB4-A_k~y%2XMp}$Nu zQHAk;G?;6Hei6q1S%|Z9puKq}{vVi&|22qw_1#*dY%NT*?2IUBKzFQdouR(n20o`uK^)s{Z{wKs9j{kpS;{UI`pL!e6XPcv+4)uPE*Aw1@h)azB zZ=pUs>aK^Hf9Gw3g5E%{9gSY3+5h`#3AS{X9D>?`fC-gk+>fHg7N=MM4vm5 zV|}+8^q|*}sKRH;wI=xs=x1+xPnqk7IR1aq?B&}pP~x@bI&zGc{4oB12_%gFKgRcO zQCl7Vf5N2LeE%o76{DTc@&AM1?oRmjOzs|7d(3O)*MIz9>9_GZ_*47^UTdH6f1c0r zzr_E~&`NIv@qZVtuaWrQ&u@w=ZYKC|pm#p+mHLeTUwNM)vYd|VSo(TjLf0MqSw7?c zbLg4BH6w}<-X8uLxUwaT|Gxvn68~HHzrsy8<$k$;58h2h>+!}2-oYGEk3ejnhyGXq zhU4N7uW35fj0TpP_%j7+j>ey57*UUa-j*Z&9AM(ljMVsZ9%|4Hv2^+Wr}%R_+I<1y zd~ay84UQ{}KW8MwpX+el+j-FWG0^lSh$oCcPn-C2t%*Mm<5<8^&0-waZ}u*SzV9;e zXE}PljX#S~c8NcW(fijoApSh!{ToM`RzBw+js~Z1;3&2UN2Wqw;?D=(Cx|w~ygvRC zC}6nX!5i)~{`B>4^L~y$8GpWy5fkIjI6sU(Wxm9ppCL|e_RdG|FZ9Ry5`R9y@!~S5 zf14S9cJSv_C+H2$U_~rTCz{g0xncvR)1MI5( z^+2Mf%m0fBB$2EP$uIdXnB8xGb6>chd4wKz&yQA|1qlD-Is@7lm>1ufo}ZzOpdk|C z^s@WL89!Qb6(ju4d5CZ=z7UvP!yq}*1M}g=byKFL4foK_-HOZ(L1;%Su11yM8`s2S zhJ&+ka;5dyL}I@ z&)^j)rSQNxUzz3MTqjq}c)gdDFkIQ=Y8vaq+=y_^o3qPY+1h=hA6|#U>(x1DEUn7< zT+S&8D_rMiKAbU@Rdl(^OlsP~Ak0ZxL+8OYJN|K9n18aqNgur4f$Lu~qs=)1VsZx% zXQXLMe_Y#Zg>rD#x21M%z6F7s1u??A)Eyq1^ z`j_=Et{-syl-9g9glxO|=PD|#_{WyuH3iM_68*CbTvu>6UL(&rDc(6qjqsDJ6WmM9 z@{=1?#+6hl4{;*g6K=cvCPL-#y`9Ow9BD%R^Q@kC&9J4p(!tqPS=pxkxjM-eT&_v9 zGW)qI#qplIab4HypR;RBCHiNs)HU_bxqPmWwn1rVBYAMfrlUbP*A=IK+H;1EYamR; zD;0{7g8Jut7uWvS799-M1@HXM^%K!Q*Zx|;hWg+A`U18vJ#p-!mr?&+;X(Azb!=Ik;C(`( ze`+vXa~A!JDqFx}_l^4Jy4L{IunHqv&JdSkPkU1r&dKvS7T&AEwI1G$%M~ilxL2Z` zDlrc01P`1au1e59z|1oGs&IK3aH5`71pp6P}me~Vk9E56frlY6XQ*6Gs!Tdlm&f+-780x@msimJPD1)En)l;WJf5-+Z(?Tx<@?61JAP&rtu#vkX> zhZ`&EzZ?7y!dVCP&+7w3|6DhBw=(#W9z4{WfU;2k69fGZ!dXeE|3UCE48I1$-s*oC z81{lziP!&Nv_*TQIudo`8q_qj7gy%nBNq?nTRzU#4#5297@Wh-!r4U$KB>)F*uM{I ze2CHiRP2k_|8Si39t|(y_-6ptt7ZoJKLYLSV|J_xGh5@(#`94M(f?%Fg!(_&=>JGq z%|q_)b|TIV#^aB7$Q^`so`}~{Se}Yc1`g^Ew*FDIS}t zujs~9ZP818=!E+3Zggq&-w8Q&$E-yua_$Qo(SI*kiT-;4=anR)e`+zh^}*^1^*;gU zPcxuT-i5dyG$Q)%i2`@|VSAuz5>c0kFX5()m%6TeEu^23kN9!Dcv*BS#eK6*9ilDqwsO;nz{U3>$ zW6}S4NIe%hw#2L$g!|dfPM*r7hCY|%&$KrDtTATX68cI6^GZ(F}pZY&7CI?sl*J8eY zV^04UfcJGsc@JjPsQ;&-mG40}lVKC;|Ch+|Iv`azXWw1_@1g}C!yjiVUV!!=$2t5` zoI{_AIe_nBM*U`-@1Kl$z1zKCV{ZZW6nlR}$$x-6C!%iGV}9;p)Zlr{T)rKne@3(> z;CL*QJ_<@1366WA{7qpy%IJS6`kv^YS1gT!mZ<;nXwyQpB=5DP{;Tmf0CjLT>VGoy zKNL}d`acA!D1$;J{*Qw)Mq%G<M=2lihg?%wkwFJdG3tq3pw-uOOWcKk{rT*W5*ISMLU&5*f)4q#RY{P8pc;xyb<|KxB&jk8^0_h(EPv`IE z|0B#@-GrH6jCcGAnBNio-+)i*pYym@|IPeR|6gDhcP%(-=2QQ7nt9(3V$|t*`}j|x zw2c3v|NmkZ>;tdLUjlWM`u8E%>HasE|D^us`2U9fr}@h;i&Wr$g<4em)c;e^|Eos- z&my1^PKIK|eko zmNmf}=+E%F`-3p=cP$>k^(b2PVXx93>{CBI{ZK#a0{yh|S9qQMP0-JtXwN>r=%*tX zif)hO+UEw$R4(;)qCM`$Y}Zt*Ah3OI$hFTlw9jYg-|SyM#vJls=!@-hGuXY>+m1ML zKjt^xZIq8W0F;I8^BV5ue8iiDGT-I>9xE4YpJqP$SEWDOFZFBuPf_~r{sPRn{nI<# z|Gjspehy# zCn9rX{4KLrwBk38va@VFBjm>MF-yoJgtRWtM0x%x7W7Gv%#$_cd1RK2XPDCROwHK} z&Yl#Tydcuv9@C7E+$oA9iLvokCK?*-v}PguMBIfPoI5?O1WkMVoh2K+61 z*$@EniY;G6?DX&Zh@ z>yc^JjV+dCBX6PpId8?;CF-9F3H8r2N3zdzdd^s~M=v*@2Q51hs2oiCiL;H-?q2GKw7<>DP?JeSU< zPqshrbKw=49pRb!C&!iW%sW>2B&ZHX|DBK@zwt`ERzPJAD_om2mP;G-LA zqV?Yw<>Z`6Pn=8eT(WmW|2*@_ze#lC75QAHkre>8c`?fGqlLI}E{ytT#Nk{St?H+L zKC6oHfb&G5{(1d>J9y?(#i)2bmxuc2T{pbuKa5AF2#Ighe^=C;vz}}Tt$)tT@t&7< z_~adXoZH}Ykofee`slw3dGIR#5hxw?KLq9Fv#2U?z9{l$STET0m|AV1U9v^+Q;dIQ# zEd;~a^nVb}5hmsIKhNm@D0nEsnZt=_l_fZ{pJ()c7V@q^ZQ7uQGm%R+{dYl0cvPkS zsS_Tpc+E49Up~HZ>t^=w2*=o23Z|)lnG-VxDQ}GbT~Sxje}AOrst&JE=Jn45q5r=4 zR)xKT@e1|N=eu=H@oFLJe+t-|0?!_1f5spp42Ei&g5k0FJ`HT|i%+Zn>6j1VRa1Le zCn?`rV}^qIpMw@1fiwT{$Y&ASz7h;qfC1`%2F|Q{!;bnt4s~4!eg=U3EF1Mt%T8zu zt^X5ow%7-4^L?ZLQ<3K!oV$C_D)oN?@|=*xJxcd5d@!yrgg*P>?D_$t|En-#Qie0s zeW0LQ9Q_}Sx*m)xgR*Qt#QYxP|AT@4U%{`X@c3(7Cwd63P%Fo41+GfD9gHr5o#_8{ zaGhQMPhei94@!OmX28~B=Igg;-}B+~UFiQq%#F=M?mxwuFZF*_z4hM%UU*d86PoXj z_Na#1`{eXrjo)OQ@qyRW^J##i!O0#O^+Ww1gt~I(b}w)^(&(R8NLl?KW%NG}DjkFT z+n~Q6h}JqNOY_4n)c-hFUAZ?G4cX@fpic{a+R6|0mGW!>PW^x4eGY6gW>;RuwNmxf{|1!mf0(_Sm18)RnbR*{&@xS z2DJPJFx}kGuK&4c$!f4^^)o-v&%v01>jtbEb3LM;lTnjts0sCRQpWag3d@5~TI%Oo zv<~%iJ~(*@v*>Lw&v`m>J_>#Cc(5=G^Gf?*KJU(Y>gR7L|KHGmXW|*d1N)`g@ zNc^OJ?!est&%wxa%sCFn{9(5E`7TPf4s%s(pC6h2H6O9y9`vu@nD$v0w9h@L;U}tn z{)W7=Y+?I+f%ZAne**Jw1>RV{jnDRZ!#l`79oM}dh3o!$_!s%ZyrX@#&+$I{S4%&O zf6iFQ%#3_vns85;o<~rbFW{Vk{0gmQ-hlgf?!?(A&H(V6Y%;gNvoM(-kU1)O4uM$E z6UTxwcSS4Camb7j&v1A)%oh=^rqY`8`7(awNHwV{dpaVTYuiM&gW#X{#+GiUAfxKb2Dx%C)b;KuORP0<*1JJ=b1V;p8NBjemr`g4|!=LMXj;v5^#ccsp}7KXD@tS8S>Ia9#; zhodLn9mZ$Ovi_Ao__SwU=V0s46+@27_|#a|U#`F4h=Ci&+5M5K8&Y%B-3{Z3-Z-9w z_2-ohL$D{TKYMMo{sR$-_Q5ej>R;tm!(t#_gYjZH=jh^;@*j(GVj#-Kd*b-q z^!@OyH%32AOln>K(TJ;+us9O+KN!*Rz+C+gK~y^t$6eNcBDh!xPovNRH97uS|Fd%S zpM(6zqW)uX4-q$8e?H-)JxbOJM-M*fgkvh<-`0OH>c1!IGbmF3;VAhq{2h!K*AM*j zeoT(-xUv3YQ2!%P|Cy-&{-*wi!R{!7pB>b{2FLZwQU4`a1DoO0e+9-ytp7DQI-iS? z&@3DQP6_n?I3o6mI5t;e6v+C&j^ocA7+cl^YgGlP>;0zwmtsB0N6fqtBdVX^W$V8u zO2a3^@D5KU#69xo33{#@xdHp~&+R9Jz*}{I{X(tp6#f|G5}P zaJ$>7|1VMh6*z;r2}gNu#r{56t?GdCw(&b-)#f|gN5J~84fOv<=zj%{>i@+W-6VgW z-^c$cj!m;*yV<1YRRyOa*Gag3V4*4h!Dxx|QR9$5mVW_$m!joZ{$HVPS7GJvER&w) z@8z@nJ^XRFR{3SDP&M}l;0}aJp9ZhN|7Y<3Ec}0jaZeYp{C!+29r}L`y-)l9!uUVf z5B-P72}aQHJ006!rWlED5|M36{x$_ODeSi-2Xa(lJmY*5;|pIB;~9(dZ8Cpo=gJvf zn3^$?aWmh>vo;=q!ebhvK4$>AN)aA|Xpyw>d{QDU-x+mzr5~^FU?dhKDJ}OiFV5`n zYAZ%>u4eE#JG{C#Tm6|It$7WY#Bo{O;I+E>=cwhVDy*^n<@n0>%(lY7l;L%Y!k;k7 z$Ye(uFiO~@rQ~=f$7=G=qZyA9;ZZsvF?MtHf$h!G^2pAa0ggx57IM{Na#|w7Kj+tE zOvBW?x>WejKS!(imn+D4{N&M{SESX4|1!i#UYo{qB;mhhFa}7g0k3G|_@V>ik?_y> z&M^o1&p(I67NZ6^cH&x*j4$L0^(-^&yvkJgmn-+U5=1UIO2PF5X+<|!$UnzM{NE<> z@7r&V)STTG{yQKl=TFbJ=jep@gAPN>4Z-n{{P%`3`()yu&wCL5Ig?e5G@bE2 z9IyKDFVDdvlN?{QLRvnNKzc`7`|;Szt8^K;_>7gd_~gt!`OC&XpMOwCHW_kzJ>gcG5n7J|HlRVkHr;DQ_>RyjhU$H^S{ZoY9nc~F-El6EZySny z$o~k#{~(OB4nX^L##nkEj46laOOBCl$p1<3vlufSM}hyTDEVpddUD?MGodt|Z*|0- zVsmg^m+*fHT7}Oi$j|>dm}{Jhxr>`|-QNkA4S4|Vem%ypr-J{B&2?AlMF{!73s>0i znzSJpcS`@i8~i_*o*3vB%#;ZKzXAX68UA0#eZs>3YkAY}gDBJ9j7tX^{)gxI=LkAK z|3_fFIWgdWJoulBvzvWQ|L0xuv-0MDvElzP+#SjOe0|YX#dlp>TK=b-G378_7$$$WBXV6 zb*T9uzq!x${}i*S`L@SQ`FY+U<^KxoF@D?%6}*Y73-fL5{U!J>aCL|u6LIz=<^P{I z*k}3wlAs@Zwy}Hja`Y%0&m!zETMmwD!~>7;?imJ;fZWIHcj!T8foy8|CRerCYnCj| zu?W3#9K}~yn$UvtL2?Ze=W94y6x~=O-bW|Ti;F)3hcjWUh3lVlRpIS-=JAJq| zuzUSEZszz~&LxuT&ubf6MGKE#9FIx;`9FJhuRrh1V*R=H%(2$)_2+z8OB?~XS{zq@ zmX71gaJDa61iAKtqfgF3@~kSlag4%oGVj-7{oNYyI(R;BQR>g9K1MelEqKPm(KhQZ zzpYJQGkzieQhzssvi`g(cu#Y#-!rEE9LEem6lMLpV;tyiw*H)tbVu0obX|_VSpSNI z`gcS9s}OmMcRNCN$MK*D$6elaRDe=;ce39bzj^(3CmeZMfBx3nVTju8aTFVZ`g1LG zvIg;ea!~*II9i^B`6ieDeQ^wLhnT|p<9gZM>R*o1@#%l$pXWz13uiOo6L~n2@8ebD zuVOcx&w(0-F$V7%Vf_!ZNzJ$JSj{U!8Ro*nXw+Y3!K@MM%lVw+P5qD9t^N;~`mYY^ z|AXD?{{ZU066+>m{g+wS=G&vl`%3T6nC1B)j_o(?R{tSE{dqtt&U zjwo*ZF2gZm1?s;VGkK?Be0Z~yztn#luE&=8zwF?w|F^mNf4E!y=lbM-B-Xgd|7cw0 z9o?3i@*j#BuU^Ri42-#=+gVt5`AJaz4JiM8Q5aW3v-}_7`3g(0g7WolzqOYAVjE&%8tXAkElB9w{S+^> zwVU<9Z=Ai6Pg=+k(B{TiNSyC>ul%-glE)PO(IT{#&y6vtt~Z>cYwJ~ zVgY%hABhOGVh#D?yJ&@_p$%E!KK@ChVLOB`?v*$ocDDCOAC+9JfAJSGyLS?9$IlP?WAU$Yi63Tj{Hp}igFkQm_mAknzI&Dm4VT}ocmEI0NRnNMX|r3cG=EBg<9OTP-^ANLBg!l?M6I;7>~ z9VWSrV@Tc+K~5N1s2Z+^@;m!9OD+E`L)wF7rmk3C&ew76o_Wc658IdXG1MV@eoK5( zXZ+t1T$Nxu3J0tOpQX(nl@|Xv#!HWXyndg3SmGahk^FC6#t9w&ct5R;e|+vWpWiK4 z_Uri90y(nfS<5gEh0N~We(arL{9}8trg3Kq`5#006ooSEWyIlsXRX9I~md}^$X ze|$80=5_(z7QO=9#$3#uwS`U>y#$Rh;f4pq!G z8;&t}7R>(6ISPq4JhscxPkc$AA%D33(z2?^Iv};&F|9Fdvqe%45%BiTJ-S*gtqZP7=SJfiV8@DtPuX ziGRG)g4fE+b6^+|_gmXUg; z2evk!EM5Uc@;`L2yleq(@@~EcZ@lM#>fu%Syt+lkf9#<}CN1Lt*N+(ecqc_yyod3x zGjfue%N#f7_sJe>5siOb_oCY5DHdV;;}i0!Bc@I&Ulq>Lshld9SIe4cW5!!Nxjm5kB>c&Zqq_F0uvsayP7X{OgA6qQdys+u(6;WjGJ!7;i9UB*OSN&|Fc~5B21K z{w@WA>pi?`%!!m>_JY^z@Z5hS_Jr}T7p&-o@sBJ>{Obp=d!TgPQRn~1-h05=b(M#{ zXU~i@qmf1$^)8L-sP`_*lGQB9mSxGkO1352GO{E~u3*gA;1V###DKBErWj*GTqyw? zObtDb69~Zs0wJLVNFm`S@8%{i@Bd%l*>ld+bH?!AyT9Mfn%QT!Rlc^qz1FwBwbm@8 zWI8Ea1;%x+=W|z2UP8?3g+0>GIgU!WGHYFoZ=&+L5hiPE=s*4Z{R+ptOn1C+4xjm}Z}fz7zNT?_B9Q9P|xb}@wY&{PBXMJcU2fgOvOXiFfSLV{M$olAb zwYv`Kqh%^X{HDv|&lEW4xr2poF=X~C}{(`VJQ^I7dKvStJGl6g}Pu&}MJ`$(?(~oWdIpq3p7Nv|MwK=#e zi#y5;M+#j%s6Z~x&oFd_ZxeaVA^r-|s{dR$Sxq+wiCzb0<@#?8n)oo$zn`p?u^s*$tFMg2FuNBAb;f3*Z$-Eqg7=N=C;xYmch zr2m!@OZ|5m7Ol{KJ4m&ToHJ5P!t3r7Vze@2!Tp-mf6K{1{dWe>W-!7y3rN&|yLfgA zlykqH-&X&fN?y?psHFeSAfDsVx&Awc`;z`U3u~#tmG%pT4Zvp&Ea|_Ez}i!A)sijH z>{X1`<@)bn(tiiY!F?whcrzC|T*wIP#-je)hm~{{Pckf+w*U4KYYVp4QIzc}KkC1; zurDuUG+q6t59T?Z$d){##5*vl4Xbzjfra9DaoUn}d|A|MX{BNnJXb zJnG29et`3LR&wVqP;wyPu`fcN)PGl!;v^s$$&;-}oco*XEb70@k;$#_eJ8Ru zk+ICP$>D5rcLk{{k<=sPx0@W#ub}^qk$*}5?Sca8zoS_452dOc3U zam8%)-?do5)nMD8Z7nT`<6P~4BIm*7vyzXg`tMS3s^!f{jzR1W;I0xkP{Xbv7vVe9 zBmJ%iyCu}J>y!Swn3)y(lKy*;arIlE#$;;g5j=+<1>W=UaNWeyHmDo=?<(?rjI>)> zab+j-R6d0CJ|3DzO+f3{_@*A=v;Fr5 zs8eeH-3*r24p%F`hF{yxq5oXb#ZYSh-OrsXDuw?0VsW(LUGTnp{r4o#A7=#PM$WnZ zbG7+*aX&N6&g9*%;D6}9=b_6JCH z;m%YbSe^8r`w5IdlInR<(tm4Ht#&U2N2eN)Z1vMhvtjla!R^uOA}P`tpB}x45|ODSM#9SS>(L|7}b9#0lE6` z6lmw#bQ^$P{kJ}~|5iXJS36VxEl>LI+@$~f<}{PsneFZ%C?#Cr*!BlX`mlK#6Nnm?NK z-!n=7-9SB2|2@R)FXj05r2k%o)(;>JFEfwoS>}C({`)pFB-MZS!Q%m}P^JD;L+qoJ zFR*6S4vxvmQ|e0A6Z&Dh{(HDb`h5#&uVEdeFHc8(5-pg#f z(0^Y~`tR#_{d@_Zo^t*7e&Fn=|Nagit)HO(?nU1eSgmL;Fux4mFXPYU%q;caSD|V@ zu7A;s{+pTYWLE(7-;a=w(0|{CyE~Wzupk@FT(&`3uKxxwH{f6Ju2KK}I}-Kx@KF6X zGy7NOj{PV4?>zkbPfH`4%YkW9_8c?Dvh202?6e4MUk`Ol`fmYipx*>Nde?uirv6?< zye(+qBWU1Dq04HdcrtSktiSt_uIp0$y%_0o9ndS0%;OwUe-ER-_aag28BuKo%K>~( z1_S>lWbhJX&i2bC=yvPxb;#y4uyD@!5oGZ-NR{>Xx?bw<@owtxU8H#ynYo+%KMseY z{=Nxsx(Co*Z%XxdAM-Zf3%{?XMy-cWL-D%16$l?q_4n<-bs64MBf$Or)Drg|I|ls@ zAG;bokT6t1En+ zI`DpK_E!sIv+tz(yD<9z>v&zo3{dNDD|d5PSAKjJ^>=<2_4kvh{?;K4JJIIzv!52$ zXDz@t0tkA7@88?``;Upge*?9jgTL?Tz~6UJe}4dfU!VB<6QuAb_!d5!ya2wR`1{$! z-+xW~y@y)$MQHmYJh(M=9;X9mEndnqvl>}vg^>DlF8q7*(rFRVcW=Z{AJeKwxR;+eEccw+1hKW4PqQ)x?1gG22N15+8pwD;Rhf*)zeS=eT;ZHCT0%W z!=yoVLA#x!uyVms@SuP7_?uQsnYO8zXDbD?oK+VbyVi;xV{~EdcMPZcAO}t7%mHP< zwwiW@>Vor49oyFKuFWsts2+bM-Zq?eaXBF-jw`;BAom=3>I?rJhZsSbmMZ`4YrBhR zwIN31T$@L$r>p9^3VrqXYbkJc@j$+N`hh#*(-;1`0+72lmh->2@w(1A4GZYw52AGw{GUlK+I6)-%gP)^geKDFbFH6ddJZSNLjEtK7A>Lv@8|>nFQrwt zA@P4F_5XZY_~YsGcJ^BB8JoqlqsG%N4*p*Z|FxS{&;L`fZft<&yQw$xXi2(j;R4!X z)rO1dfyn=>=u^Bh{aH}q{cU~Z z{}uG&t^YayKimiYf1SSWiPf0 zBLBZePfGrOypR0MGe7_G-i1A-Qfc|M8AmLyjFYGI&eZuc-{-mIspA~E z`o40o$CLNGEX(^Sq2!Mk^+4~Q9uw>Ddimejk3ef(kIb_wD%d$ z%tLP}bBkZ$G#BGm8%!-^_Q>p~>c`|cO3dXaKMTFy3{kF>36D(E+Pf5HVG&BX95nV` z-)sLY&*#+!d(3)Z*@umutX^t4o<6lNU?1Cf5l3iqNOH^~g}qN>Mjzf^q4rr`LioV> zw7OuaVrBnIjOC3z+<-~^Eki6U)!1Smer# z7joZw^-EwPtn$}&cBPx1jncW6CqfeXMQ;nS~5swhQzJ4GGU=RiF5 zoU(R0;vet`u@)6^(xXv{Rr)MZ?i$2ZtEwKMfvZ-BxC+m!>g$L5r#UiXp89gy7tZyc z5bF^Ty2g0=cL|pq3V$*6U(`%#6#7p)gz~8!$W`U!j8xEDOBpnNwITeG^+FGcvv1r? zt|5itJ@2X|dbsK9>AX_?;4HHrsg%_4)|TelxSUg3lYX^V#hSC)eAJ@We7(|s_xjIL zl^^{`^|scpEcBm#abbPZUt2t#H|pMLde*rQqB_AVX*Zm+K6=##*8@?;UHvZnXZ6O` z_fs!gX*x2&q1;KG(0}$nM(|FF8_rcp{|R5dLY=U<52N0>LhZ`uv1edk^q)SHBS@?M z(-P`_X0AmX`p>J-f9~j~wPP5u!oSx!w(1`7uqK!5Kl2y>G~o;H9)+%X?YcZZt-gOX zlpMrzEG5TYc-Bg#%01;g^mA7l_1w{dB*op!FxpJ|{8(3p62ml2KrkBnR%pIhIbQpv zJB5$s*BJ+1R~yuS?r0GD&%HABUef<6*MFmcCFVkCBW%WRN1LVI{>?zEZ0Kzr`cGcE z2bz06sWG)_)~9>-c^c23m}%>&Ht2Vl>p$1cbJsJib=RQ<#)e=PUz z1E>DepE~rP{4Lji&Q-T&mg_%fK#v8>pjNK`CR2hj$Be~hrk;R$ zxK03@X_TwwUR~$xDVuWuE|Mcf;A+Gvw3jPVM{?$bM`TWh|eg*IJC(ZTW3Z6CL3pAdx z<^XYD^q=zzl!#U=bM9WL{#%=19?Sh4C^n4TM*yAD?>epvDQhac%k|%U@X-_6da7Ub zAmUAeqw2q<@T3`g>jLs!$?tslQQy5Xm_1|VN zSO2-z(FxE@Kk@!>d<-5oOZd(8pZoMi`)_RWJ9AxC<1U3-Yk^=ZSg8M20p(nLaP+bZ z{kN48e)sxs6;MoJY+@Kb=$paj6yRL|E!B1IsF~}(olr~P{QitWsQ*smeiE=XaTV>q zHN;+7Eqn1CS`JMXGbW+_(?fe~VFTO_{pUJe`kc;#!nyuih_s!?6ZPMAQqCs+Mxf|V z>i&2HZAUiLf2+xJ7Jf(T_*(%Lci{CB`fm?dRU5XEQ!6>2PhB{boEm|6D>-d}Dm#Jo zOvYF0;o1(KUIgaqKX*bsoAT9v`sbeuJys%Lq5oEKc5lTKh_MNa_y+LH_1_LW#C&=} zwcsHe2jJOOAnA`MRwJ|t{kIlqmZxJUqdn)K8MXsu9ius+|29(29!lB5JNFORLTuB7 z{&V$>W#p#*I~Q2jA`j<*?c1-)PdFKlT#)o19y-uT z{dbVEO8W0yMt;A!>cimCtP<_Tc2jki_S<5%jxt9ZMGIESkPj##<=yAaBcLjp&G;iZh9mGs{cVr5X{V#-=bO&CELbAWLm zv{L_B3uf|s9(+3h-7iP~omJF-dw?YL->Zn3>%SYJL$x9F-8|J?%yzkB_67y9oSAQ*$ek1_P0{_=NHGu>hI zP||Ay$GJ=cF%Fgn;#|2++T9zY%&@Xmdf6~6E1?+wVL?Z0;x_20XR5&G|O=zTLa zeHg3xdU4#%H!jVc77K9rx)@ee3)-WkGz_a-k0|B zc#?OI@%JP#O{1^tVkGQtayr(o{~iI4&y&+fiTxzMk5yYe@I}0j8motO=s&T3xr_e0 zG3h@&7n_lv5lH+BB=66Y{`(r#+?@apd-B9?=)Q>xm&Ci2xN&h|ANB#E< z6q$+awSxOU6!qUnf%%hYiH}fAAEO>FhaMk-YTsov_)Pp*L;u|irE8GKAGPbh@8CcC zBlO=xtka(BzuUk`{r6_DQ2)I^oS#-rzmFojw*Q=;P||<@j5OVcq})w?_($@(6<>1o z-_wk6hyME|e!S|x547t)SKj&w`tPSe{cZH$bI9U1!MFhoKFEv*_1}Z3{rBJcFWP_q zt^W$h^8eoY&vAtO&vrokS-rAU$NY_}^0Tq33yz^^X*0fOgHPf*&iQqEnd0VfL^|{6 zDLA5$|Cvud^6Isz9BYoU9fz=N?_&he>-^xd$`H_-n`0OTp>%Y^GE3vf0fDeNrqEM} zv0ig9UWqd63p_0&|MS}N#iIM5-OKlmSH;+xkUM^59zF@U&E2PBk?^Q7ut}2v6G|H&bixhFE@G$%8TzEw{T?8`9HBy>$skcV<|ziT>jk)qnS6ZkkwOg#4Fa_a>ULtz+C<|4DEmcvE?T<=(zbU^kfHPzCX%=Euf&dnijJQ4F8{7{;NBfmNim%s zwH%zA2WnsrgWNCQU2#*>zNKLi@s`{4XM>Mc9tUV0TgeXH(uXFldD@mNfV+tFEytOCryLq0={~9cEA^%IU8!G>+i}Js;O#as= z`R{o?Ml)0n`9BSQPN(<30;ta6*=nFt{#{|^Y)T6GKM~6G19o}Sise9?u_G-#1!wV# z?{M-w5qnU`|AnL&g>^&uUxSr!6glPczY^Z=;aEfYn<%M25IA4I`>>}d{}*sxja_Lg zaJmYR7Tw8MRUGR$fSqj`w%cXk7V^J4$^RZO*~S~!)#@qK0QF@_{+-=%J{FE#{`a=a z|2DXIxG4V@W2xDWm2MTOl#5G}{BP(fdt@Nwe-Dy&YLfr!N#iKN(M02oN&e5J?1k{g zJyBd`WHWDN&auZ zRklI8;FG7t&8Bgy|g z$p6zkdn>kI<^M_O{8R_|cgD?V>|L+JuJkBY#kZ2ar%*2c4I!`jL;e7o+Wsb{ZtV#bg^U^;<37dJllv(QU zXRiHU_A3A1XqW$Quy>>K|03}H3i*F4(t0y;`%g*!zu7MT?}Z2dmgN5jl=9F2E&u;p z%fHqK|DwNHI(t=3FkV=U%)!6h%Hvh#V9zqj&+S86v3y!h>OB9j6NL|d;9#%UoGJz5 zmEhNAl*4a7v~tispr>Q>JXftaLTx`rC@eQ@U-o<}hp>KW zq0t{b=pXBC>r-4gXxGr*p#Nmpuk01tNAyYMpp@G}urzsRPI1=0Q#oik&=wH<*PmSf zNcpe-aODvE*SA}^ZQE)U(aK>zuG%21^50#c<-hij=(|?RLCaG36UWX#`g_WMeR``Y zKltx{pIRRDY0dd>%erz1{*Ny5U+-CM6t1gW9si}5yWEUVDYe|hPN4eBR>yx=-VXk| zlc+wj_9e#iv>N`^6Epa)|E&CX7Qg(T)Jw0aL>Kw*tb11>(1%XHOugHjP2Y2?s+2yi zg8%lHCqM!DuYF-==V;yBPfPr_=c*TBBk6`fLHTc+uySam7q2JZJlf*=UpI3X^?w%a z+sdH@O4ZXQn+mLZiedXi~K){_SkgVX`ARPR2!B;|M~PVhLh8}WcAp< z)oE2E-vyTz(ZAVP#{W$`vkzH~mxuh<>*+%JhQa^S;ej48=T^=CwTb_yfwikoPAF_Z z{!WA%t}Rz7Y)4A3DDr;|b><*m7>AMk-L$;7R7%YI3{87Bva$^d$p3SIyDpup4&=?+HWl5{}u56+A7M|+v^g>`OjgLUeBv(^oU&7?PS{h)${-LwB+a0p1%y=o;P!~ z4;sF$PyBz7{!`TdEAS)f3;%B|^8b0fq4rb%<^SdI|C97BDu=tM{g1Ts|I4I#1AU!W zRn7nBSY_=B`eW9A*9|yGujmJO1$~~q8$VvTcwqj$BLAPq1LTRs|C>3#ME!Sdv`XP; zQ0rFs|6}|$z5wO#X5}&U{}uEO|C|4nsF(LSO7Su-qd$>9i#wl3Po?8~-{w6P+sj?k zo6awJe%Qv0+kFN6c&NduJ4AZ&G zN@x7Xk|M|7w&iH>arRJNg5zqIEdGuYIkT!f|5{Rvqa`tvchida4{uLRMyZupj=!^E z^4#5{!M@D&BL1$O-bg;B_pTuC4kG3F=d0bDySp0){tLl>Jn5a~QcB;5N&{Qyjh3lFV8>6Uwia4zRRxRzOp^F5RTyJ z8UM}TyOM88@PAK&wjBS{iuiAZ3mb`bGPF3gEdRiNE#LQrz_yEaN=N*+k>lYa{#$sz z7fWJ!4IGQ-=Rm$ICnJ41{zp6DzZ+ZGG0M#GKZ=Dpr;hT!7rI;pjV=WL!`PvZU^gwj z5Bx7C$ICdB|3hWD7qIMJ$~W@PD-M32cmS=)j+C_^TeqBU!)ekK_H>8UMF}|LZ&8|1NCL<@^u)|G0?%3)mB1 zEGz&2Z~Svgd5-J+2@k3Yc}lHJkw<9J>hg)NiZ-dROXa_QYpMxhpD|{X9(FaaJAcQz z&&}R_K&_VcO8x71D!zE#rz$-SyM|-qVh~t9w`Q?qTve^3t^DI<;nJQbD^s)&XhhGol$M-dS)heeC z`dgmgK}*&)pwE-IR8FsNl=cOo_1mP4FsR_STHf{^{BD^*kcmDWDzEOI=*jIEWxfU`lb^cZgwpsMjvP{2pa!@;yGvaH3tx~YP zGKkt@_%EI|EsxPPP=kJrQ|@n96OBb zzn`7BzLF>M{|wIaIVy$V|1Pi?N(*pX;{OHUa$e&9`IVAGr4s)yhyS~2CkFq|q0QN| zUr3(ua=bA*^Z#60eAV;+hQ$B%v<%0SZeQa6F6zJhKZRm?*Z(>HUkm?V%gFzwU?BhZ zf!WPDkiDFT<1uhCR+=k|{67~imh|9=f;{{asxh5uvt|Iw__c4v_ne+*S}(O?6j zwyS%g(!->Cl;hi^{SN0p;QSuqPviVJX+O!e=SMhOUH^&e3pfrI%i>YjknuA06h=>( zK67^0_hnDMO4N5z?z=gEgYzGAyoc*Q;dmd{FLAt|>p$c80N3B-{O25xas4>w4|9H* z;~b9bfeWK+n~LER96#pzqT)Nxw-xWjMLdi@i9E#BdvO|9jK7;R2H=#}Yq=(#d9j&E z#HEb3%XnskZ8$NQ>n6cx=PnbAqa?8|dGg@aAf%`0p z-wr-sjq_^aD!cGqnKe$^b`H~+RzApA%PI1iSXG8B5e9mIKYe+zmPWNTwHe2NK}~~) zG!M0j-XXMog0kL1nJ;jBj_WUQej|rC{61%4yN~D30^3J8z}I)_`D(7$^A6f18c3&i z@J<<*Zqn>V&er#Da@@c*aoYB9-N%r)4Qk>?06DPBYWp`d_CAW+_NTz`d5*sz=?k2f zar_YnGOkIg?L*aF_YSVW08MReU0pw5DvR9qF<|~Q$M1pny&Onsq9L?Pbb~h1s>Abb zWf^#hSQ8NCtV@Tm?M2>yn>;?n`HO)|!s)GCi(7YRo9pGFrlzj0fB*XW+OGK*{t(!n z2Uhv|X0CId7kMh&g$9nC$JY|)x?+6fpu1pwg@v^VF^wj@g_kJzTO9DM@VO#B4|Q|S z`6<4>FWz^}n!;1*{RsX0*HkM1IpW{V0gg%5k>gZ1iuYx*42P(6b)8By{%3fmtO=Kg zGMHbNcu`YV)4#s1bNVMK_bJMMhV!$WU(b0z>EFQh9b8|`^}lmmMH&Ca@vmGz!TBl9 zPjg<+c?0K-oTbfO9Id2%Gv}qn^gf%jwcCJ0R@9?aO_ua)$ zWfb#kzb?CPf7U~JuLiy4I4Rn?D#3YCusXQ@Bf~>hmqi4IRA!w zb?A8D_&2WqC)c*YTR6~fNiU)^QrnpJNZWJ{zk&DiZYI|QxE{=*zD3^BcZjxJx>rAe z3$8E)TslIZeuOyU`xTCRc=k2U>X6rQe4YE3I9o^mg5$f~KgIca&a@|OXB9rjS$+FO z&em~`)aLvl=Z|sxh-c)5D}ABuZ#e&d7Qoq1Jhh+mCqA!h7-*w(_=qvZX8H6PDNXs$ zn}OT!z#nkFpYsEp#arCo%^_YNp#r?%twc=mk`<>6Tl+JVw3wbkzDEUio@&eG~~j^9-% zqUl$$Uw?GKpr%pdy36}<9^MBGZ{z$94&@h|61>~E{t(ydW^m8>m+|b)&-x&x`ZHK?W z@jM5(r#86qxsU5_ar`OQ-{dSkDu;}(V6P$RjC+alD0x1@Ij7kM?$H|z$H$Pn&($;P zhu3hvgmbSU69P-0*q&p$Xwg*a!zb?0%#JkSFd|NN$n|%(t zX?@`oq>zO*`Q6QN4zjt0V>fllMHSC!y8w(gc9Hg!rA^z^y6(la)E!ot;v7_eAU$|(=(q+q6tX#Ev%?az)pR}=9q6qO{TRV7A zR@<+(eqeJ`{eb4W5hI2UYZy3U;OJ2!hc}KIIcnO>)>*UX%=IhQF-SPn<)Eytu93n` z-_Xzm0E35(96PaPYL_Mxay@8JbMwfNqehLk_1iydY_x4Ybm*{QBSuV^%y({3v(`{G zUIXE`H#82QT|aQZz(Irfx({w@8Zu{v5P;5OFu>tEN@)Pk9H_QEKm=iih<(rd}(&rd^bWB;tKfr`?veo#Mt z8vEJ5sBawD)Neq)L5)oV>k-9)gNKb8Yr}EM)R}YU&YQnr(c&dbJC~Dk2fdnxtUl{M zpkIBz#{L5u1`ZrJsD5C5lRcKE0bntD%((H>RT%;T4eIOb2N0==)@hdEI95}r9 z@`HyC9A9|p;nR;DxoqL#W2bIDebe5!+q?1PC40}Gv48KL8OQgYboRMR7F@!LDc*T8d%s-m8}^UvY3w%h4jL6tlLavDf#M(LoBH6-)EfV;^@#8I5 z96NH|(UuzyUVCNBl9o-U9WRz!21h(j*9GmWQKz0hPovJLcFSK_1uh(Y-~&cPuaGMvv((KXR-^Cbt}1w`lFb6K3pR zdvNaD#Jhw~dl7STfc9Q3v-Tdp?$YCX4;($XY8G#zlzHXYQ((*7mV+0~hBED$c#-m% zJGblO$RxdaZDXN(4lOO?P@Ze|8RkHx{JPI3vSOp5Et_>*;+?yPn?X)a&VePQRYsw^Oit`YfqH zzajXcUyV8*P;`o)9x_rEcA&}pITd$HjaPg-Z2@+bzaZ$WVdKlETXpvsZZBTj8+c&bM|LH&h?ig zRU1Vn8$5l`WbcT_`7iwu`egLb=)>(!y|haTmnEBN9;4SYrKg@*+YI`)v@a>GKYc1; z$pbK@e)n$PYNyafaT~{5Iqa9yS5M=kKjw^`qtC(mVrw1YO8sl?65@It_jhq<+b9cd z)<^om$>yM4BK5?|B6PfDS*5mhsn@oNzU@}}aoeHQsU0Jg-PwDaT$nR2S*DTN@yc9q7AaSn+<7+srD@;ytRHP$_ zTPRHFCjRL>A5+-R?}h@Rj-RFR=M`q~yFD3P))a*2^7M8NGno0K~J(IXF+knU%)Zi`{aaNzyOnSvh?kLoSpDXJb|qEYa0=ook}3 z#40Dw#dID><=|>Cu4C)$NFjHnTUXq44uo=0ImFBd=Md;~?@Uc+ekk?ARw>A_j{KJ& z@vNHkV(tu2Q(0rY_eow4E0ynjR`GTYi?z#HFwVzuKZnjd=`Jr8ObF3Wic)dbgy?* zBE9=))q$<+p}OCktBLlF|500{z5J8%Qd1t*S5ba0`SRbHD8YYI=JUUL&!iE$DeLlI zdIkT7K)q`D@BWU`KZ6FYd?zp6DR2}|Du>|zc&OGf)D)(5e9*(4{CD5FnMM9P`=O56 z8`biE0Sy!DzdOm*6k52R59E^*O&0f1X8Gg!%)h9kVdHwBV+wQed0znqW|OPC%vBCj zORXW@-I30!xxZmU#`QU{?yN9OQos{Bl1%YbI7sp1!yRQo8PDd8nTMD--|sup-3?%wRdAunB&gm1g0rEzhur>r0ul z+XxSLCjOsU#{V^i>iO^5jz<~Bx&r{0r?ql z^8(;Lk+SzO$X^}*w~@9Z|F=<0wfw(;+1G8*eh-85IsY$&|93)@>iPc&ZMC~8Gw1)E z)W!Gfeo!$yn(F@#a0mD~t;8!><3#?ykNV$N{yXzO=l`0-|JI77OQ)TMT}A%yN&I*H zTi0=}mj7=|{67G;IrE_-~86QW#s<3g*^7S3M2-Z)8PT z>tD6>f10^NcfyIF|Jzyr_Bd`k)zSZ(g*jOZvu;ZC|8ZeacATA{s-yo{j0g|0!`9n@ z|NE?!^AI~-eF6C2&h=xJkmvmu3QbwS|Ah|lugdj*XQN$;=1&{ zbNW)AJ;y13Q_A0RUP;LNN~X8<<-JGVpNc2ZR*!daZCR1l_HVS>^OQmuc?5p(o6{lk z&eP{`=VzZ+7i{(CkVbidLG%Tj!(8eGxnie(5#Kk_bBi48vD@RwVUF^R6+MgSk6VW6 zqLe&$QwEKygSr&Uyv)IAOksjNlF zb1_yPv-qltll=`>Yj9^5bF~j4MP1?16)EJ6bdKF?f}*i=x>S$Wd+;ncP#=xRo> zqLSFezA>?~g50rxF2yZRj>KxH)%N+z(UN|&NexD9X z5ZKohDsdKHS5b1ECRad+Rh>MWUYz`M#U^|Fu703QNxNA6p&YhquBEbTno8e(oL$}2 zvR%{2Raaf*(|0~GR$Xf0*}oPed+)Xr#mt_#wZe5t#lv+QU8Peyg!1mr0#d1gr&`CX z?@Fx{Q3~w;`@HW#sg!<^r*u@;g+2*=6SAqqh8FZ`#EDqG$--ICQWWXZlT@6Jjtr-Tfag7NNW4Y3Xma2%W>{-jTxrH4~h@)2;`d_P< zHAcx--ldDHT}TH@S5l*NZu=0FS?g6;-eUDMZE?!2G9ETKYn!Wz7+X0OhJaXT#Zmf6 ziC7gkuB;_uo$Dhd-+E=e4x5!VMVz$#n5*&o9y;rPZBW)LwPQ0!XvtE(QOjKKBSQIm zEr%foC0PjBkRM8W=zsBu5c)qX?Rm`Nt13>~&9wHoUWscOyW?@JL*l;au9vG-PaB2n z2fLS$CC7SdL$G#*om2Zy=zn9?lVj-r;iMbLU9SIKEk!*xobt5rHF2-?EcAbG`zZB< zO6)Qq=>a{cf6Yq|a(&2?Q`BSS1|xXSf^Gtihz15{84yHfPXgqdg4ySoxD zjJzAcy`vRl!EGqd`_tnZ!F6B5Sm+jOBfGeCbT|8ROMmTiyO zVYQO}A5TnI!I?nM!!_qd@#juTHCQ9X z+i$3~(K=|(UaMV{9^c1TNWB3!EfldVK^-K&LKj;blz;P& zytwF7Fi&OJv)at>tP&8qPAy|wKp51O!t7|48b=PPK|`Cy8+E%HRxRoG+dbht3$eOQ zIHT=ht0l(8V&AyX0o9E-2yq@<|0vc|kCuYmlqO1%D=@iBoIG}4BI{SK|E>4#x)l~% zYitveZv7kzmQq1|qm)Gbbe}crxOk{5v^QFRe_Q?Un#37$p6mZH6X%rQ?)LkO$fb*5f>c{vX9{N&k;5zU&8t?hH2$h$m9U zF#fdI8r1*Nrmvw~|F=TfxzHf=e+%bn*c7KxLVtd9{XYeM%_5e2sj2^`Q1Te!_Dfux z#jnyd35do3<22s8g0_~Gv7}S~PviM?sBd|p|K)B2&#N2rE634wwcTUSJ;yuh|5l!r z>;IX+-9ovGk%dY8&S%tj5E?J^|2VFid224Y{&&^!k=XY8F}mPBNUrlV0o(p;=rMx( z5yV~!UUPZg0=5g16qZ9*`8xFfT+%PYb}apelfS!xWvpeh99RcZcIba&ssCNgb2Z}( zv8~WeAmMvJlsUJ zW=q8HuOlVO{19TAw>rXDeGQ@i)j#eG5&GY9+|N+m=l+L&fz`9afy6afL;sHk6W5+o zoAl?sZ$kgO*Fs1AZ(UVS38$@${@lC&f|@~1rFJsBQvL5}liz>$cWmTJ{XdzzsmSY8 zxU2r31cXYvtGl_E<4ocVr*67t8Iw17>$ApGTgQ>w{VCP|W01N!-dShW1mnq3Te13o z3U8DlM=$DAz6p&!{46K;40)eQ*;C0Q*Z(WPM*Tk%cniqy3QCyGvtdZ`Y!3DRd{T_0 zc9iu0Jl-rv=GFg;Ngw)uF;Gh3>0no`|6Q9`Dn$E#WlGTp(2G&0GwM|6FxKG8Wd*c> zJY5E)^NTTcXi{TuO7|y1(+HjQ|8$_84$RYw?{lp_8*E!C?L;sv>3>Uis!%I5(vhog zA@u*c^vyg2890YE%T9oD3k#=mR{!t9{i;8|C&DM&|Dpd~eLwX7PNaG>an=7z&?TGT z;t*D)T@Eix`hPhPtN-Qet|Utfu+=wlZ~I~^+->0bZ=?S&gy-e${|mSa{l5mP?|{?l z|8wDTuK)KHHXvQ6z&l5*)&J)LVd($$JaZql?S+fMY$lVa)c^a5brFB+|MNL6L~?hd zP4_c$G=_E0tlxbLV;OOA#laTFu$EBT6;NR|PJrtF<4OOY+(G~Ef{urw*mY3u9AMZC zcj_4h>CY4O|LKM6yV3u9d9w-qzYFQPl+m#(aKAf5s*~W`e*S(N{jW|DZ+j5#iBiLF zwExxruGsC`(C$yGrORGsGZ=^d_pO@UU03aexUZ`o6ea!d_s-ssu_p1xQDwh&(VkGt zsWU7;^6DG)bxRz>-)PRc{&yAZ79?gihx)&T(q|`KCk8W!8~WefF{e=P+!tjMF`D3$ zd(+f{!7$(okCJHr&*h2w-(H(*EKZ^ZHxu7Bl4HH0|HtsAuOZt1x&A*98B+f*q_mUC zbqDgX19+C8ktQKcn}L2a&qq+pPb1E7Mh_PvL7P%rqnT$*lK$Ta{MP7|z`X$qxQFU+ zG{RW4+9q;z?~xj`%@p3K-A2-yP!HQ4>|0n)oy%A|JM{m0wD9u6B}~0Pz)Fbf|NV?-et`39;L9$?6xILlfKOKf z^G&R-*v8mw=>K!!K(7CfAU*2;z2x|Q#)FR{GkN=eIr`}u(yc&~J_f(1L!UD!Zv{G3 z{lAaD$2j^LO6~tj`u`r_zbongTj2ZyNY7W1DfRy&;CCC7lbZ{l1OBUk`?XA#?avtO zstp5K}QU8AdX}^%&MV?Fg|I^_1%Jlzp)YnI-V?W1tK>hy}ya#@U z9NbjY|DUC1y$))=K7A#=0)$iV{u1*4X(sEx4$stElK%e?IH~`iW)%1dpnhv= z|36;%4t3yD>|^;A{2VUDBQ^B@x2Pu{1E>A?KG^<$Eql`RJ#^Lo>(L83nA;{P>HnoX zn@25NjILPAn|{=1-|90o5m}o94DQ;iZkmTych9CFseh&ZHhOV3h1nX1#A=m%s;T5wCy?;8TpT~JOrIqymGPp99XBQ>?e;UxP zL+(!{#ZvUnM(WGP4>q_n>FbNA~t6{lBAK|8GO{^)(Cywn0f-jz>$D z^#5f@z~zMpfhF|+oy55v{*LBQPv6CQpB?r8?bN=9slnHwLpRa_xw}mN-%Q=Oj3qb@ zw(EcW9YX)V7LY^#Uyda8HRSsL_t7s?k=xJVKeLD5AE0|||NlwS|KDJZ(r2i%1F5Hr zS)p_>Q#YPOFRA~(13rFrA4i)1oV{6>vpmJK(ENQJ^#2{u`fd0{?54IHjx>OW-r|Aq9_pN|3Yy~&T9_EMJX z|9|04uK(Y~^?!hEx&D9Dq=YPUhlr7x?f)m?-uubBkVzz z&H^s#|GimB|NjaqeY2?l{|o<`(Eqcu0eIYO$i7MK{3DijQ2+mi9cw?1%=``d^Iwqb z(b=9%{r^R3=AWe&#qz?8>>4~4N6KH_hw4h!>e)P_YSP!$8 z%O93~zivVkyeG-eBft`Q^%eg7`}G5~M##^m?5725=W|S?>ncA#0miS<8+%(}SGGD+ ze%55l&))&p>#|d+$@f9U8hpYIW?zREv$HAL`B_PRR%Le;hGl-g3fW}%u_|lKMzSCF z?5rhwoHu=i-vp5;Muy@puH#+ldFkF~`EyImbLd*Sv9to@f8l3f{F-$5YkJRloOqkR z$={nx*PzAEn2uuP*V-W>#~7IkABHF~a*Lew6fkWqhfj>xIn<>G@y2+@ax|(xSB{H? zg+nV`_!^`r>3Kk;kA!dqZrbWP2J>+gF)#>B9Kkb~CJ$bjI;axw<4GPPpv&*_bMBv^ zM~ZusY4Z&$kG4)n&GfGb2=kFW$KJ%p(tP76pVnnZwz>xM(GSP@3i&?2dg$mepeL3& zIL>c5T8v{9J-o~UQ}<0VrPia)!7)4k92fR4#y8DFe+S3E!lJEBz;`hNNQ<;_%}+mo z!N8%_x2bdXJeQ*(1wn0prM#RCo(5%u8}c*vd+~Wmg7SPi77;n+{Fjz_oe@}d^A*li{NWWt6VUxWdzS7r+oBQ%K4-_`H%51#}6DomH+yN z$Zc~fmw$aljOCxt^(h$05%Mn#jw^Hy`p9dOa(1CI;@Qy&pDMGS4N93KsR2*Op?occ zu6g@T$?!61 zOcnBPsk!`X%Xfry7|<9e%FtpnHoei-)t&qsUkjaMAf~FJ9np^z%D?t5$Nr>}JMa0# zy5w$sF^+8R(kVtgy80JLVRMQRf3XwdT>fJmJ(qv!l*@l`*%~X)B8Hv@or5{4Il@26 zx~Rm5*OX};eYft11~gY|YRJFZ!W1F@T4cNC?@l{PkC1sSG>(wVS7l3mqa2E-V_YsG z>z(5?!eLs+&3w|G{5zU$E^^;}ew>Xuj=%mqcl5rQv~t+8$D~*z$yNE+=VdI1I~fg2 zW#|LbIfPV%{7;}=ru50Qlyc&Z%!b__&W=%l>fERQCo07j%CDN1dVFwWljag1z@73 zV_JIBFI^AAKG2U|oHoW>{-+baa|roYrzw-lf)Fc{N?ypnTFh}?M@f}NeNgm5QZ5G* zFPDEU?VW?OG9CX@I@NGW=n$?)5?2`t`FB@%wUHJ9J%{v*3U32bC}EDl>i5+-w89&A z&Qdm8iEG<_Jo!2T%=bf|eYKb|6_!Ee!{5zuBIXHr?$3z2t{xKZ( zs8{gUpXbA|3N^#E7XGxQFH5nM|H9pfwi3+Y*A^t7}#PXtco|0L4v;pt}jnp=^t zP26n~HeGK*r<$pWRx|jcD^m;EKm%RNmm+`98i}HUqbk4AjO~SHuA~fCy z6e0hciIdC!X-WRiA=X|>?;Q5iH(1Y~Gvszc=aV>&67vvnhWww2#q2Jpg6|>!ONl!PX_}kl|AfTp*-8Fqcg&o- z-N^YW_|`yg)1A9lk;`HJ`eVmc{(5pV^{vKD`IdGP=6Tf<-3#o--jh#`}f71uZ7ym|67o>-B>Pi`MJQT2zY4qFd)W8sJ4nq($oG3d{zl3?3EbX+eePB;_#-TrFLxvVYP5QI zd;*fb8cA6NkEa9w0OGDr^1qn67xJ&i(rRQ$`CkuBYoVlbEtUTk{^ln6N~~%BQT{h0 z|BKNQ%KvVpVh9o%`u{{EV>QptrCfK~4f)>+1WT}ljijtSygw(&|60oJUj8q^Znc3C zid|rO4|e1G3U?Ic|3)Y=AKS|7k-}NnsSX3zadLe#SGQqZRR7-%e0PFzBQktbJKXuj zZYaD8&M5z%OY;8#(klPoB-e+M{C|~E57T}hD87rebv>ni8JonC!sm~oLW!R!%FiV| z$WO*%SsM!Tvt5NL*#hi-_pt!i$D!)eg)!N}O!=9XK85_ugPyHf z$j?|f)G<8UPM`a+R30t-U(n+NSi80}f*^hFZ>P_9q0g_V-`1~pVMAVsd`X`N;qHBf zzebPzfs5963ac}00Kg)BUSuxkvxPmt{0K{#{|OrSVI;)*H6}YZYsj``zXbXz+2vT= z{<&~g_U*zM*)iVVkkz4E)yq-XgyiyX&r$B%r`KW`@*kG0N@dj3x`=*h*g2JdZ5JVd+O3QcwlOiX zM;WtyLar+1uVpN(qS{5A7o^vf@~@w-YYV9_oS~G{+uc>graJi_LK{ko4kgW4+Uf3) zEGKOL)be%I3)fJR|1m%?mNM-NRt`gHe}(+JXLCP#5yR-=mE_-C^o(pKPvw6U@0}@> z_gN~H5SCe~E>)sd%4KcK+O!PbD^tpWR56x%ubN<8j6KZdo3v44V|J|e^pJloWm+SZ zFr}+{`5y$G2Y_?Pzm^BBxXyghR-siUbVJDhaLRUunSJT%%BdKHf_ki zc8Q6!eVRG6Cw7$orO;HXR^>31*17WEN*d|Mq+;htO_% zGK#g%KswZbuFsl z^cO?^X9IyA&P$Q71+;7j^R_zqDarqQARLxj@LFpoB$;&ni~4^$oDTWl3>>SI{BP)y zCgm?`=^5qnzZ2-z(4SsJ`V~d_Uy1x~rUl)KoEGqi2>CyieqD9&=kmXWKJHFnyEMuF zGJ17`$u*b%(~!<+|18H+wUypvwer7{KElR!`QMx5|2%T2qvx<6svM?gzcK}2EgGHxIP7L zuj5>j|5LFC={2>qlu0jFL$OdO|K~%|<@Eg5Q_hvpeheHQ4hNL~UG%JG5>NTR1YECx zKXc)JH9`3|<~V3kF8}-KEw)0N*ChErM49K)cP}8T%Kv4QxuKfuf$nMYP_JKse9oqK z{X~-gd$5=cp@+H>33_)Y`M&^MPs1~)n($Wad+Prui}L?|QKie+GSTCeQC9|3AexwwKaBNY7XKzo*ag zKb2hkD$YaZ=Rl7Zq`kFW{#&@0>*@!6>RkCfLc4NAwThQ`9GIhe+r&Jw{;``w1%^W`B+TzXw0ZA$S%2 ztSJ9_Fh2w3pMlc@v+CvlLMYh+H%s!fuP8sKVS$^>yB2IcAwO4v$thr>{2Zu~{sV}) z6KIv6`=E~Ub2B`73M=|B?3_m^`8?|2rEp;hcBPfr^WNV_`S}U(|AhK`I%^Ei&8B8A z!P^gY(4WfB`>>FH6poyV&2bs_!|L?s_krxa*s7$@+f)78hc0-G`t>J?KJP8k=P@w+ zMHzj5LRr;>oIbyXK4)alV}GkDoRAI6q|Y}CJF_GBy`P8Q-_-1N*^3$z);T^>8^20pXzr1eP)fL9U1wqP$T>;qw=iggGghB?_5 z4BM5lv~h&R$R3WpVGrLpnrdwA`O$uKq~00)`3eNKLhO;*k~0Wd%ulfmAZ7t;e$MeX zck}YOrN?#N9}N8ML5g4C8RWIkm)m-@QrM>q8x5Hd!cW1zpY|MK3hRh|P6kut`0Iya z?&bJ9W8HN!#NSb2adouWzL`Nd9dCB7pfgZy)rr47b%T9>=k&WmNsJGRqwW5ozD{w2 zYnE$IMEjW5Mtf>G{#xnm7igo>#-{Zm=&LV`Rw?ncm#U>e`1972v%_3tR{Y2C#?_u3 z=Plvyh@q`ASB(|_@V~IdV6dG%hg6eEZL51S?TMLuPjdYAY*@sT9Di$VNBrlbiB|H> z2>d4%T8J^9V_iH z(_2T|mvQIFs`yVMcU$^;SWHPV<^!8^;tFWZO%=YaodXvZDx z`0qxm?dQ8I{wKkUE68az6xi0zfAK%wj{o_Te**ZQz#Jk&34d2O83km6`Fgn0iEXOj ze+mDE;6D$17IeUW8IUjG?=*DWZ20edOxtz_@m~x6XM_Lg;J-EDeeWsJJ-ISzSPzJNSPF zWxjzg*An1=7}&-CRp5UE?FhpMI^q9^;C~xEmUb?;-!U@m2p{jL~h(_GYcw2l+PbA@1i=dc6t`QR+tg2d+r)p9Upv2IHK6!hbpU z4Ny+_KMij8F!Fair5FC`neb1|PQ+LFYm870%;qu!femU2FOvVS$o~uE|1;V>6X5b| z@RiQ<|01=oJpW&({7=jB{PXWbd|y(QaH0GzfzjhnXyiN>^@C~iP`b*WbUw#dMSZ5d z$@Ctfpg~06I#Me}jzCQ?Nf7n$};nuAYAS zcc_WuO;2fkZdqD(^tMuaJDTAtV0!mfhri_+TOY8{<1xCSuWn@AdhlPWEAzn%TPgSt^agr*m-FAYQ4@K^ z%5_>HwR%?Ozipb}zw02`HgPm!C^U5CrO>gx0nw0JJ6g;2J|0I}{iSRPS^q2BfSjLV zEa&YHB(>J<;Qwf}a^>{W-qwlpL6<kmchGpIHMJ~#t9=l>M?0+qsI%8~!e6aN>`&N>gYut|Q;z9iWF2fq~1ayA~ZP-Kb|JLMp)jJ3|{~y7_MxV4rv^%5ze*peJ*?VH% zeg#WO@c&QX|6e8kzr;M@;Qxyi)2~F!j7sg&`HBC_+WBt_x-$RIroDMmk^k%A|Aq8! z)}{LIEcrbZ%fB`8|4e2_TK{i>|M%1SeHB*LJFDXV!|?wG%Do1Uq!Rz1!#;R5mfOFq zSpMnsRqn+i^r15TKTD6{{>1-3tC)Uf7X06l&B)66KOw_2E!&+{%3vkEf}sD^$!qc2 zGWwr^TvZBZV~Gp;-wGDD7wLZlsjiOxQ?eJJ+i&pNlm3&kpM&{=Y+xq+e~C4A+ zMCq;shpn2(!7qI09)@2)pXtA24q*iWkX{3oG#`*rz3PvLt|$9LCRM>Rk> zrBm@MxYvJs9A94X_r5%wiPj#)S8NgZI~KaR{3X|$i}>&3Yk2^BQ)m9K;~PE_og)7D z%XY!P8R%U7PyX9K3M*Wx5Le`}CEr?T;cs}C_pUj)gf@n=M#O(dDQUWz!f0L{FkDCu zYrsFOV5Lant3Bt^g#X!H@P8uVe^(LzH+I4Q3GjbC<0d)&*OszQS0AVBHy3`0mFKN| z+aKtH|Dq!PGvUH~_|z5uGiWsi{-^Ur>5Si%fB7!X^;Fq zzl!Ij*zr8#=I`<}r5y9r@g~o^^Eq-cZYh-V@XD`VoQ)A*z*1@ILf`vadK&j7J?S^a zKV#&v<2w^^N>G)qa>#trG5DU7^U%D^CyppLzK?!0BmWYF;$qv~FHKG*ZC+X* zBM5_I6dvLI7kC-R@2?(?J~2jasTBH-K^vCVD1+(zrulU-jZd|DiI>lO8fE1D_GqV= z)>6d5*h1*nA#(5wr?pM|<1lqdLFwxkkadO6xcX6=gSH?&d!=XOsdY}=qSTO8$Nu~} zOS|yuG=;4OaSBf7mOsDb;-!_!Z=LyTF$zitul?rdob3vqBX~h&eQo81wnbCuOJ`2{ zvc^|5JO@o-JbmEAEM=fBAs0}$Z<{Hu(_!1$N=D8Ha zM=3H7B`<1Vj4S7o>$tbpQ*D<~mNILwH6QlW&=cks_EzgpP`h0J`7}5i9F2UGj-Kde z8`9p0JW;bKPmYIrZJicsM_V1|4=UKgwidc_wRJeg{G;C^eYM9Zht~Y2A~fzT;i!Z; z1P{c*wY05Kz3D&Oc)jaC{r9cI{>9iy?5(SwDA#|^r!DC}*S&WA*6{2v*MEa3QOb*D zu7`5Y1{HbT9;}_Y{*xZo)FGr(U$}NbuK%L8N{5)CET{Cqb^dzjKUd+7Iqyn~HCP(@ z%+U#Bj^xf&!JUf|ie4*lm&zM=nOj)1d<4SH0E{_|dV1D~d% zJ;)jV9ra)IqJ&S~?Xuo=MAJB2mf5BT&k7ypKCsh18cpL$Me=5 zLtI5+2v3!KcV`{LedxbYJXine9q*g)brti$n7)n+C^$ot8qhAR1j#BKHjcp8j!Pa+e6rpeYw#U~m@`^gEUNDcI>6ecp z*jFs+zt9=sbG;&lTRs?aTf*Q#0n*6XF;Z^diSwiIA z7uFB`aeAsB<9Vb0(+l2O7W&Vb7W&G^IxuPk_YKi6-kCL84|4sdWI6Jo=g(l`3`at( zUok7h{fgbgLl~7;bCBAuEIu5GbcYV%l>&zNO_#+V=Nu?Gdgbfg674^0XkALH9&r3f z?dMF2iTvjJZ#*Rh=3(R3zAyL0qNDzE+)HVTRV;G-=L-4Ck*RxvZxVfUC1()Jv z&fwZL$Y+A*WZ-g)!7;TAYlEwx%%ZGG#0~xD$|TOM(DL9;8skW7xsFP>Ho*-3CMFBB zUMr3XO->Twdiqlmf6cuo_|#^u;$wSh24z~?M-tyq(tnH7y_Oe)^9!VsyJCd?(+}P8 zxFwtmj4w>%w?Fx+7p1@~9}~M=|4qg(D%XEA)BEmzhR_eTjkgesM6UnlCy%Px;OWla z4ZOkMqtJp)q(9aR{dMg7ui{Cr|E3emT-1MZA@tvDa-9KmQ^0u^QZk(st^(t_*Ymln zCodsp^}-(M=Nv~RT$!~l#y8Pv8Bm>q9d+=rtE#GH0x~GM9cu)A(5lIiI(# z?;)(slrR}9&{XQmOdy=gQ}^bckHo3}^rIU<4!QoDMJeM*Z4U0r;*K)IkwRAwDv*ow zGYnnf+eBV-h`)lg>c4r=UQIU#iCzb0<@#?8n)oo$zn`p?u^s*$tFMg2FuNBAb;f3*Z$-Eqg7=N=C;xYmchr2m!@OZ|5m7Ol{K zJ4m&ToHJ5P!t3r7Vze@2!Tp-mf6K{1{dWe>W-!7y3rN&|yLfgAlykqH-&X&fN?y?p zsHFeSAfDsVx&Awc`;z`U3u~#tmG%pT4Zvp&Ea|_Ez}i!A)sijH>{X1`<@)bn(tiiY z!F?whcrzC|T*wIP#-je)hm~{{Pckf+w*U4KYYVp4QIzc}KkC1;urDuUG+q6t59T?< zYQY|;{yR?keefdm-(hUgJ;|S6ZD+5A{&U`}-nt`zZ34##V0NyO`_gDncEu-aP3)wj zj15ll^qp1z$x-Ws9;oU+TMOzxt?{uxS1mF1q8LKD@jUm-6YU2n*tLEPC!RXNb0hL$ zi^8wb6b@JYQp2eKoG+*Tb2lepwAMMVtz7^41r|FoQ2)7aQn~)qT0foi!CUoTEAM;P zf7_{r?w;a0RQ1&QT>mYmq*)0%_1`*jS`I%#|II-gC{1qcCH6(gllt#UQk(=NBYCnFiF1FGokjh3IWoBwzVAfVCNh?JHaVP4?yewp zC6aoC{C1P$`4#lvG4e0zzg5e?1gn$&b3cI* zNK!pdO8ReYs@3j=;OJBXlC7Q`MO<4Ju0=P$UH?rf>c1&aT%VuiaB~_lo6yVdHM17l ztN(l+nlFCKDe0~)O;E|R{`c-Nr2eyB&4X%Zk@p5*RR5g>eZ2)@p-}==4 zTLGP1?M(f*Jn6r4lm7FY(@eg@fNc;Z*>>3lO+x>zA*Uu%^#tE`WHt2P9h9_)8Zn-) zk*$RTNXZPYbNzRFC;fLicsM`uR`lOnkd3?XX1a)4a4Mb|b@<0zg`f9w>c}?63+Exp zXMm&azy0VK_1~MRRqrXZ0N=H}=)WHl?d{%F#F&m{eK1NB7x_Ykwc zl;hiz{(BKxKY%p6%si@RnfDd?@7v6fRR7%vj|Z?qmHJN&v5!)|z?xM%I3_1gsViAe z=!fn4@8KTl_bsHohINp>Or3a)G0{(x>ig)C=lK|_|GxMCu=gf#dRFDZ_j6AsnaMKA zWZ#p?I@$M~goG>*mH-L+A|a3vf+2(iR1|Rl5h{pSRFncDh@fQ=l`6Pv-LTfyrDCzUMwjo)r{{}KQ;FoyUsQ-S0MEw&yRR7J+e$Cvm z-=hD{!@vL3G_tu8n5JaUGGi>uUdzf(OThMKs9Vv0i&z8wI_S~6{(Cj`_X^@|LknMp z2EGKktVN2aG6%u>yBF!YHr3yYkS^B&y&TCr$`SSV5c+#J619;L)mE?^$oFI@@NYo| z_aJk&U-qEet-seIn=`<|IkQ(Gi?2bdtiRXxQh$$jQ-5zG&C|%t9pwKE9E$pTJKl8f zM0eeu>hHzO+k6myUrCMH2%m=Ib$25WK9cJ1+kop*yr)Ki`$NJ3^W>J4Xn(A*o(y#+T}TcMLf91Qs-X;%TH3r|1I(NznF9KtJ1#!>wmzTTKrv}okILknfm!RW&OMzWUkIy zSQ&04GivUlCc6&Z$(j7!ke!V88Mciq=WlDa5l_0|rL(ge8Ta3peFwUp1zqLuH{tIk zP;p82uZh14vJaEb&r8Fyld{8<+sc}A@^@d>6a64>IXDs&E$q0;pZ9*QOKIZQ^!a#M z@2M(pO&O`ecHECU?IJHF*vbi8zgNYA_Q)8K(~7G7*s-9XRa3G>CDG>1wr$88|`JqB-R8!Vf@riqlW~eT;ZHCT0#XikIhE>#W_* zQCPX)D0tAnIR2*9Ql@Px=GjUCEoa4oW7k^I9p#G=cKO%acy;G|<)EVk&Kyt%%tyOI zvEY1D$F{Y*Yx4^@isP@u+lJFFE+@pqamAMsec`|35Thv5QsuvWZFdnZ8e%lg zwRyC9x~i_L&=<#FOM$bC2lL(258M%-zVP1_fZVmQn*Y6x*LB8AyRIV<+8~4fS}i(z zJ$6o2xt~Hh=U_NKr%gp`Y0NjS#OdwIxi-#oas6ahTGv*iUFM|(@o?oSSNkp+oGUyJ z>P@EQ<5)*CSMD=hG>oF1r476veSw_+j)oKsi|FGIp>-4dpG__k>Br0}nw*xZ_8?b$ zp99@z!%cl+i`V}O|EDK=Q%37@5&gWPVG4aP`9BXRHogS@uc9y4gsn&Z+as0#TT=h7 zCdgXLlI~i#h_+bKa1lKa z`F{m{ikHU!Hu!%Ft?fOuScCt!|4#hB7yi>GEf|9Tx6|r=6uZ=IX?FWt`^f+O^y01m zIsf0^2mU`#U-vQif0Ulm4fL@;12;dxZ_%)nHopA7JJtV-=;3W(7I|_0f3D2`FVmBf z|IhT1|KBhDpv?d8!oB;jd8z-kyA=zoO8>q2Z%e(>bBX>-P%eKOF?^QyYw|RnJEy2T z%VS53N-il;AAU?}d(8a&%X=60lq#j=*Jd2CyvqHMed3*|^Jl)#bIVi5Idb)V?O=~5 z?|BKO_fdi^^6&|aaw1+}64%wxM_PM8rVh9Q+Q`!$QYCL=|9(RbtGHN>ZP<7gK6f$R z6u8B;9wT|&93T5qL5;tAPlZj$tSfGH>6arVd3>z7Y``)Wx0uy1C zzpk?@-Sq5{&i!~IB%xpQrjmv}Gln(-b1M#?epOOMDbm|1>Zm>k;;H9U$hI0xc!XGs zia6=f7+JV4qc~!iAxSGBrGv=u;r+wjE{|T`k0ikP*r+=4l z$)WHUQ~yQHlt!Wdv_mML+JRhEPR>XLy|t7<;};F#kE|DZNSuA+W^xTF4DWeYEz!eG zUr*IWD4FMQX-TU(lI<8n@EUHa8t6>H9F^HGah^Yu#m{p&wVRetm%)!SOXve19} z#f9}re{Jz}-l%)0=~?GKi0TBdq}@o)`sfu6`c^CBu6`H(vwCCe`>7YLG##DbQ0}Bo z=s)`(qj;ypjpVAL|Aa4Jp-x!bhf(ibp?2l-*fY>NS2XA|If}IEKP{o|XXaYOq5r%J z{pXH;T02G%EBt$%W2^2F4{LI@{xgq(Koh?3?osHP*RIRs)8hTB;p8Be<0(1z!n0PY z|J+l~LqB(=QO_MMNK)Lr45Q7Y&yRIwI5AAq1O#KTZ-wTImE*Nvx>NXgew}gPby zb4P>Ff9{p3_mcisx&9jiEHM{C8(}kkJK8Mu_HPDSWkYZ4(0}sMJ<#0qNsXyZvmxEP z&(lQy#7tXH(V*X9uK!#&&t1>7);W)OJoox`>shEjcIZEMXjA{W`h~hktuqFS#H#Fi zq=x>R1Q*=tPd`%OmHsi~L)k4FT&sU7Woh|z)oI65^%J-J@!Y!)ocd3H>d=4kw_5)> zSKXRft^b?>JsvEBTDkt4N(sgsM{Y&K0PH%`fFkst`*2O+Nei5CXUmHI8%M06JedwA zQ#A8x4H=h`V~^?>o5irk;R$xK09_8I-H#UR~$< zj?QhF2^6z{CiLHQo=hWl1MsN-W+&RIbH*l~6oYUcIEw3Ba?qRGJxkpYQvK(u`R*&} zP6}h8nldKs8cCrH>CJD-QKXWG&U0};%6f8gh0D2|bNx3NDD{_9|IH?cqCtpSDPbNm zr6-}QWR8InqbX-HugO~bm1~i&Oj0R$=|J(;)FwYhtk7~Nb z)Cp^pHBF!8Md@jA{Wl*Ab*}&B0G;iN(0_B06_4@oYzFe^Zf^CIH;TK^e|qc5>5Bf7 z3uDMJ_O*1id3`4r0ryyPQUA>#MPKw^3n>;+uAWPB$h9h$V96T>C1wEKEXs1#dH3;L zO1%mFr$1i{an*m*@K12{uO{LzmWuA3dS1r}|Y7A>I@?s{UIJPnxl} zE+XI6{4Rt)&L}7vmcz}BKyQM ztqPwsaP2z0%Sf&M(~I3_^NG0;`O|B9O&`W5=3xz=#)v|$|F(j;`p>nF)#0S9f zad_A)<2ToT?$g_!R0H6ZerK+$YTV^e>lh$79xT*Wh5kF95`O>sZw*jP zV{BpsKImJ4>tx_v1TEEd?x>mTza3CZ-~0iLLa6^v<$emVHE|W~zjef3U6j3e4y}YH zOBs_;|LLJUzO)H$hyHV&E`3fHK;c~fEk@c-<%#<5L{iQr{$`*UK^;_1u4 zT>a-xsAp5Y`cMD-bD_s-w8qV&mxSkkWu!wI0zg+*Fgol_<*B1p3+1Llqjt7zf zcw!BLHlhEH0h*QR*uiMeIcSCxfwG>_oX~%pDQ6d@Y~!8#2W%s@X+rc8`VY$KyL+sI)be{=BZIz&EalfzE9vyordD%l2&&!8;zpWdCt!enY#uK%uObfZ6M zL;r0;enS793Iw75_5kyl%tdH|PZj-l0ADfnpWIvz7Tc-&=Yxy-@2aH#u3`L2{dWa# zw-M)1G2n=m>%R-3`~)O$EErzG_*q5&T}7-6YFtEFi>V2tC}SQl4u)3hKWo8ko-crJ z`=I+}=)bed`fnGIg#LRuF?0R*D(Fx&g#No73Dzh70{A=yEL-qFRsZRC{YvN%`tQ}H zi+MK*AGwnmkD7-(oyWWJ_!!@a1h*ie>c4aGLTkgTY%aBYC*0Xr)_+HkPTPNXg2C@! z|J{cEyBY{a;P3g?vi`dPTAoW;_d}VNp>1sc-47p@P>arHJnM4w-vitq!UH_?-!5Xm z5pUeS>AzP)fhWkJjq$BRK(Pt`$OG{22H-i2Wb4Nm`cHrPTdA4uFnTcQzdwLZ?*JC{ z-+dfs;BOfE?=9px2d~Es>}zl*b>$(vxo-r%1JwJz=)YGa{r6nbfA_<`KS}!U5pvJ< z-+o31JL2i!HJ?wSmmco3 z{(BP44zb6u`tNGw`w)429$tAo!)WKH(0_U%AH;|Gdi2PvDe2v5FOMg9_b7i)5YsgJ zx-Lb+?jWZl?fUOw@c0ZleTdjk@cU@d>VYrf-PBk;tV92a^$T6}->Z`T({r&I`5A@8 zuR`*^ne^Y6@jiVD{r5~+|GgvWzx$x@o2VaeKsG-Ez7_p;n0_BZc5VMTKcS-k{uODu8%eo?`tUF0btAsy>c6KL;ST-xkNEMb z|K8KC|6Ff_0rj`gf6pR|UkBqxFnBLB9@KyLruN_e=)Y+H{g3`DAp#a4 z@;}=F@n`kQQXTU*uBy+*Di$0=(b8so&jz2wb)56-^fJZG;fQqR(Nl0lBmXm>eB{+@ zQ#mdkWjhXG+1|$ppx61qWx){8o10@82BCCx!!j%5#{q$`Ii}E4h_POCFkXc|T32I? zJ4SyU%?ms&BmeW-^2MV2pxw*&j#tIlnvgqwWgb2WxXsTEZnhViML{#}A}sV5H^B_HWPd2Td(sc*G#~j1H+VC)-ltmmRP= zx~RR~@e}DD2x-PUK|6(UcrJZxP<6ds`6qFa=J8t2~p!0uXy$Z*&V(d)bhWtyNSSiEN zQn3x0D()|?MN?apt!dZ1a6H11H058Lild%NRYm?C!PBR``{2s`N_~tuyPmD`@2*yk zfjAoJin5NyNfF0NloxlmaHPmF2TSa^{^s&O5;%vFm!rq-VC)Jp18IN9$~vxR<5)`2 zESG=x!f57=D`fQ)9Px^Ew;Zu^3^12}%P_t6Tvz8AP8Q0)qhI~#m4^H~no>*tg-Sb_ z^BYii?Mk z{}v!?B^Rw-gK68lCdhDl3zNxP`B!2mKt)GSdzXJ#I&klf>7(lmk-n!OmMu`j-K&&;tqhIyTU@8fwPEH`o_qLC0S{MJ3H?7E zdC z{dtxD+3>s(C|clwt3qkcZPdC{Z7}sKA!wyKVkQ0bzPiEa!0+aHF8}MW$c6kb$8M3b`54VmIpqIT z_&Jl_|0f{r%l~$`c&IG@7h$P6 z5i8vqQYjaElKgM#DSKofvk*ud&zYvmSW|9Pm=#zz^QoH1GWu7{l+B! zd*R=5ETi?<^wwe_x{~_69Er*G|C^KizoEzMFDK0f&}A?Z_=Y6^cOw5!@$4eB<@qW=GAlK(fu`8Ti{#NU8V$p0O1J>>rbJ&_0N<7}{9f*ije z`|cl7)BYJNb) z<`zDGwaX7Xp(R?Lo~}Zqt*z%iZFR0%afI4_j8Ir^*uL!f)(&C)(n6y@deA@C+t#PJ zcF?Y&y+QxUuwU6Lw2$bM+CeF|gB;ie|>t3lpp+ezfUa>`n2Z! zw`E;B1pmjD`LFk^HVW5OF2;Z9rC%G<$zcM{b{*1p6 z12KdD`p?RLXYtGbDZTWXDs++m&boIM0)6Q8%hbEg+4McPsw(N@D)?`Ic@h+m|JoO3 zcaGN0{fxwad#-vB4kFz!C@BAJ6V?uc=*8>Fw}7^|{@2aiMg5;c`?hvyfl>{$$)-c^ zndH$5+uMaBaC-;Y6f# zf0_U5s51xf!Z?KF@1*6utyW^*XK329k(KRGK>nWt-1X^PjQ_5Or62BIXur9N|NG(p zH3iDo+iMTw{O2%AujkbadPJ`4b^`7G;{3mvmi$86^Oxe=^Cqq?hK6tL6aVj}{}lCq zKYk>A;s1?g{y&E|)L!bp{J#wTf0VvO?Qk2l|KWE2e}Ocwr?2z!!u)@hRo3>?AG7|u zZomP0Mc>CO=rioy_)P8Mf%y;0{C^G)kjE4Mujl+V>c4BF)e1j`S~tS~AK(Uf$=Z#LKvh{zU#P?tC6Sm5%RyoA*>~FLzCEI=|%kVH-1Y^G%+c z?Kktc&)_#X4?gkFcCq8Q<`QK@3`>u_kcG4D1;)GF_7b^E=w9VUFvNUVn6Jfn@}7-&wbN_tyc&Ox#T>k3XWCRc&L z(K=hWjv;Etb{y39X`X|5iodzU3^Kmn+<6G>il#3wMWn3yX+e7tJ_lx;V6!t@!tx*tNEq`|92&5 ztMNazjQ{a)VKcE#fEK4zhP z6Og_f|HB>d--)g42xaE@AI8F*Q%CvV4PCB)Mi+wrA?(msVK=S35Bx78$4fbs|ASSz zm$2+!!Z-0TFnc+9iT|B^@ha(`1phsh|6ZVQ#pn~be!S}ao3VP2lMhA zapX}e=#8Tfk#Zv>!GHZ1np0l2_~&kO&QX*96Tv|KkA)iYUrN+UAN-#{E_&a{f9HbP zg3_y}c5tl#=lZtr>spyguKQrPr&BTh&o1-dGAF!5{?7yBd6e9m_&+OM7304xu9F;J)a=|M@^toByp)+!6i_aBl;&uq8Z+9Q9u+G7C`e7iX-< z|IO|EUy5yKO`=CF`mLq(1qn|1zq!o+wOp^HUAd@Ma-dy_9me(F&rV!l%@g^52Iqww zwL3vhel{{`T3UgH1xwUR@n3jZ&I|2t_X2LI2Y&DpbGNS^UZyfHfS|6E#p z#rglr#Q%-73@4KA;>7>csQ>c+WQyrs|L6RFE&P8iBmb9xf&9N1%&yOY?BzTXkAaJ@ z(p+BV|C!)(3G%S5)CT`g>m_Bp`UCi{mq!VkREhERbEyL*M%Vks|0m)9lVJKfWJdm< z$G$AXvC|zOpWeen*2J92xcw4527>>uVdsZeFa~e^f3Ek$yzR*Ut4Q~iGXFotJfjC| zre8@4=gl1jiu<6%QI0Pq{@;fz-a`7``FAJtkDdhEkF@juUDW?CCjLKKfd7wD!syzjV)zKh z54e6=`JLyR%J$+S9^&e~I87+W-^m#RaLVhoTocc{*vus2QbyaQJTp(v9zMG< zo~5#1L;UaatXxjpSzLRZ8%HXa{8HK*NJshRS8C&2lg7mReYJR8lih4k`b8_%F&qNmSK=Fos3A3n^1tR~qs&Z~*5?80|t z);Mh^a+t=n@IBmPQ?qf*Y1~u^`fE?Im{RT7+>U|Wq?Jt1gGaP?K(ob++!SSaY$han{w)Yjg z?j2l#0h)gO>g)RhQ&r@)4+HbZIsO2=@8Up86AhtVq8qf4Rvn&iugbtn#F~I8XI(mk zZC~a6x5(pToIe-1B%I#DwYYV6wz*y%>gww22MlOv=+`y>(w_j^bHFNJ-^6v!^D<9` zyVS^$^Y|L#Tw9Kh9CR0~uduLRLQJDcZ{cf{`wb5GR{C@qpZmKx=lm33-&S7c8|C{dS%yPYy82Ef8vm0#Q`UsbLmAAkE4-+yuN%-% z-#Psgl=~#*e}MDToNwm5m-Mga`VCxP#Px4DuAq$n;`lY!k8^&K^HZERa^A#wGiPaY z8%HZ?-^6)&Ila#oa_xKGnScI1eWyRobMyZ~`Mq&HNN;(@5eCao@Rsq?Pj)?w4?!%3;%-BR%83t(p6A zoRtIP5I?;)kNkageA`OKC(kyTx3-3ZY`@B41GXHMUSHmYf;*-iC zzdWxTpZ4@s@CaXm(ef!T9ZftN#?f0y{D3cY{8^WhnwKYh!|VIOjCw*{y*0P4F4bPN z7XSU~`R^g)t0@04?~ZUj%J~4tJg$}JgPaGI?@#2~gZmE83cT+wek!A!U;A~{efzT> z%Bz0ge%%Xv?Qyz+*LNM>58$37;fqwal@Fiw7_2YpBjh)(zJJ4j{sS5t1~d*F*f4O= zAilyw1`lp(8Zu<)(59iy!-fqTKD@bk#K_?zMvmgYl<^N2y9<-4&+3l<1diWwOyk~m zsLw$?9rSA}Jxpc370vB9iO1N}{KK&qZ z#P^FFck=AZoYf((<9MF?uW`1H{uRe}xPOxKD>&1hw4GJ@G-vhg=Qvx(IZ~VRZ#jRM z<3*m47q0ZBw!i26|5*TML;2Kx&Y$?azHzXP(vhRam7C==XQedNKW_qVzXN~F`5w;i z2aT;jNtC&Y}E*Q-XIp*YD$6-3;zI{}TSZ!<-o3dHH%H$LqPjh4T%Z!7I^7 z*$1z-MVyy#ytGh9GQKwTe0C}sl<}%O=Lt!_IC!uQ`_O6;CPM$+*2D|`Mj9x zZ*cqt*I(x>J!*%HuVAks>5RLG@(6i8%sHpoChpN249CZiyU*1#>W9~G-ov@qkP5C@ zzBZR6zneKPB}404_1U_?yAHuGJV$!=1Ac$Z(I46k;JArv)2!uK&#{yI{O(=AaRmo; zHhsJQjPqM~9|7VM;y0d@f7|OA-;dPyp2&G7#}tlf|9g2*Vtn zNmJn}-%IyIf8QP2yeWU%suE^36U6-L$cEGE&IGn*8qM zI0xC>#<7#SRvGI2fP8IT+;HkrER+7Pb>{BVw1MEO>HMa32R0>n(dh`L{m>}n*>j$@i#C1PHUUrHZ^gR z_|U1kG0)&EyknaUdJ*l1&k{$Cjm}OrC-eK0QBXFZsj+@Q-0V_=usyMvosi ze%$EcV@3=aIb!^n1q&B1S+;z|%2lh^tX;Q$!^Yz_mrE2O{`>VCIwb4YzhA@P=B9>$ z&Gn;34Ij}sc+}vrV@8i0G-mXe8M9mG%$+yiuUN+*;ZT=DvikZ#6mI&)#wGw5I%4$r z$t}~nG?|d=Aw!y*M~@yeW~{B>0okBIw#|nRA2DLos7X`#&JAhS8mb0NL2az<0u5*1 z%05-Yz{ZBgK?7;m4<0yp$Pm8nLz|k04I4VNxp`Rgh~dMBj~q#EqeqS!J%<0WXZ%QHQwdC^Wr=j1V0a<+`6{UZ}kpBD(>Tmy|VbI{F z{sa3D8Pqhm0Z|-0bi|nPHXNr-pFMB>f`yBgEM2y|b2%w@(5q|A8nOWc`#1C-G+F)Dq?cKd=*3sR^oqg`IMVGP;=axN(4qbIk%cV#5 z?YU-OOKHY|Lzf=BcJIEH^+&JSd*IMDi!MJF-^uoe2d=!5her+^O3z<$)q%Y&y_YeE z=xcUgGp{9J*nI6}3%WenweRSHmX`eS!GlM5&@#8>HG@ifF1hN+H3tsuU(j-(E7qk_ zOF8V`edV&1s}9U-Ib24SVvcDU)a!f7=pjk~(8J3kk!#Af@fzU(3c-x*d34+n{ zaCkSMl6ZE<96Kb)<9a^4yG;0w<&_^+V6>p>beCOqq(vsT9N4hrm;>u)?LFqe{P~G_ z9plZ*0or|~%-VhQ+Dne^-go%GnmN3QQWjKW51=jcTMoQzE|jS*k2oMUe}31;kx6>< z+Cio6IkdcrLwT;23J{R+z^3RFf)BBumJ-yE<*VFr)c0Ik%sn^r{oPIsMZ>M1Q^jTJee#>gmZ&?lc ztzVWCu!r(%&~I4{`Yo$LzhyP(x2y*Jmeru&@^<V74fy10(B?E&)=1_}8bNIfq(5M`1iCr2HtPFjJne*eY6%X^XahDH zGwbx)XFTmUy89RL8gC!^O|+0OJ=$1}JgQP)#;nWw$Ak9w<+Psq(FRS!s8!EuUfSQJ zHJ`>==o6*0cj+ZQ})V3k@+P2WQJ)VBtiO}klj*+VF?7dAbO{2dy4@-&tIeXXk&0JKj zQ$R?24V|KQxqV%Y&}-%eUUn(4j}K~qSMzm9gQ_MCGV&Yq4)os8V1cCopIi+WG3(1- zl5rw_|8#A8RKH>8+6?74_J4}_F$cgk3-k!D#E(5l+-t%38cyp=Q&Suj=_ulsO4GWD ze>%^{mG<(xsf4KGXKDNerCI!*m<%rKO2TtldOMGqO~%JqNBnQ_J2`2v1*NmNj`;6S z@qf(<-l08>a~aonl&s?az-*gR>HhTOl*}g`gLtV1J$HYVUiA3mtd|N+y^1H&xL9!h zf#p-_QV17-cvd?H=SeuT()fC@Tdp%n`lmc=r_W=^h3epJ%p$=OU2WI7Cdx{za^hS} z=YiA?t_I^ew$6?ea#y-_#ZBixC*8soiB@_JaSeCM-@w{uvmUCx4WK92i2bmmESdAY)>>)Q%(tdr|(6lYsTo$W47 z^)oetdZKe#&O;~?Twlh03!QoDELOe#-J7HzSHlWqFsjUd*9i^&JNqN}Kej-6_tB~c zTh~K%zd2VE?Hm82wn%&VC*`H4JZvaXelGd)-&N0;)_Hca(b9M*8!ySqL zXIAllU8y+#UEA?6!&v*_|B*8PPjCpUW^msu_n&l^%t@r2jQqMXu(RQd@qaSXI-KTw zU1>U8%lSW!Jc{st8NUB5bT4xLAIG{hn-c#QmAV@9yP|V3U6L)7y&cHUfSVTp_py|H zF@yZY_`jXB9r?eVVv6$r0%l*gLHk_{&gcBU5dPl^O^WmXVcKeUP-f2mTd9i=>3&c% zJd*1F_i+dK39ZEatZ^d$-%b7REB~GOpYwlR;(u$+(xuam(rIP>?@Ii4{ae>@F3SHm zCjRe(Tf=DW%Ky7cN6G01-4tquzexN)!fG;a!i7ivUx$mt8~eon7vTS6)W5ru6H;_V z<^NqZOD|F0#%xK}lIivev(%^nZ%E zL$|_-p#R%g|MncY zV!>8_4r!DZ7(`#dIn0$_kSlij7x8@)J-5ig9=kn`9OfwBSkbeH{ATJ$IO3{9U4zsQ93qx?;${$IS0`{SPh~Aao{O>anB`Xm zPWCrkt-+mL%+)@G6m^A1SEP_P(m8go35v$f=~6vf@4>U+kUQ#_qpKOkib`S=`^Ln| z3UbH(xfHiNITEX(7VYy_qb2uD9efoNbM$Pv!tb@MX)R2?b+ril{5~C$Ah541RN^eY zuA<~RO|F0tt2%i$y*T;jicR+TUHw3rl6JBBLp5wguBEbTno8gPoL$}2vR%{2Raaf* z(|0~GR()#W*}oPed+)Xr#mt_#wZe5t#lv+QU8Peyg!1mr0#d1wr&`CX?@Fx{Q3~w; z`@HW#sg!<^r*u@;g+2*=6SAqqh8FZ`#EDqG$ z--ICQWWXZlT@6Jjtr-Tfag7NNW4Y3Xma2%W>{-jTxrH4~h@)2;`d_PxQOjKKBSQ6iEr%fo6I~`H`8my7x?KjlgXdN_X zuhlL}kMH9vq+X0Vsl51BsgCxTIeDf0n@8lV7K&JwpbnB>p^L2z%D?$XUR?Akn5Q!A zS#9QbRtX4QrrHNAH3QX=2Cy(8i$oiG*f9t)wZiU6x8ry`VTR(?` zrBqPgC?!!p-Dk}@E*|O%?Tyyo-&Oy+CUJ(G=lXvf`A$gI3-$k4;4w7tEcE{fYJyry znbt-<8n~>_Qg$E^jz+qLuZ}Ba-*tV|4({fr{&$D6(ErVxwfc`tW!F)gOz~2Jj-%CM z1;fd+qW|5It`bIY={O}5naTf1(Lg|E*AVJ~RmZ-@RVpuf4SSp^I~Iu)i}DYwtMWk=Xgi`-^#OU{XZMHTPSxa zvM`0;g^crpKd zI~1s;ZBeO}hVnk|N2w3hx9UD{&b)-a@ zA4W{`R!11CuOalm`p2CiLjPNi`x&bH-2c!ouzGeRkhlhG=>M@`;@Wd+lL5TTd4kIGZ>lshh4@#^ep&`fO0DtrJM?{*>zfaY$V~@2s;F|?qyC=_yd~s!6(!8&*$5vJ1Y8r0dH0! z^XmVlq!0bS6ey+eOt7og|E|p|6{7vWI;H3X=;f$08Feak7;A9lvJ%=ro~{7Wh2@w! zG^w$-r2Au`X@t)DeCL_qkS|3%0G4b}SfH^uMJ$Rj3sj>B!Z$5c+>Z`evSi z44lK7W$U5b;?gOc)&HmAel>vKW8stS|Iq)gz90I32U5M2xa$99=#njPaTu%8u7sBr z{l5~3)&KJKv?NQ5u+=wlZ~NkSxZB9{-$nml2+ynA{}*r<`hOi%KM78&|IdZXx&FVn zvfU> znf1GGVLT%)t~l7j7}hdM+Yc4y;smJvKbrLa2_5wRY0&Wy6uTD6odXP8;Z6giAOm=! z{y)9+if;7(Zr*G`|DT5RT*Bzse%$X4lIl44wwJ%(MgOZ)#M>T(d!p3w8|{DfzbkgT zHnjWGYU#3<*$l>^|9z`wch^;WA@1v{2Sr8y`@OR_WUMK?aa7r_U9>0Ea_S7rkG%Ru zecckr@i&%puK!&Hy9J4v%c1^nq4c>)*NMR_;)ecrcg$(jJNHGILX0N(z+eP$ zg-1!W|L5~W{co?$H5R8(gPVzO8_BWW(EsCj)7KE~|6Knciwvp%7gO2^ zLnBQ=nzjP{R-TWdmY+(Tk>LMuN7awnj70mL>ha8ThTytATqH6mSpKk!XbRXtgcm z=-wlBXq#!gQM-+%HK881J=nLfk~){Mc6R9hjmWR#Xs09Nq5m&(aww9z3OI88zXxeP z2}xdv{O>@PL;tTqn)f2tE0OTykoBcts{TKbtM$YQ{l7DPxwevfGZaz(pNurwQ+sLp ze>>b)1K(VQw)%g25BmRn;%!NB-v9&=F6HEyx54)RL7<%pwGXBzX^LpNx*9sSmTu`* z|6j|S8(xC`zZ?$lXSDFL(jKPX?_(uI_5WVRGvCAcHSpy$#uU~6Z--Bp1M_vPuGq%d zZ0P@U;XtncuR?m%|GUZYA;yCbBQtsXeHm*|+e_2`&r)9>rjGpt-vRai7x5nWF>-KSS^s~E zn)N!Ud2{+od=Xw90@iKYS|HqlE|2jNVZ%F$8ec+`2e~MAy$AS7Ssr~<0>D$zS zkFk&C7x8nr1dr6v|KFgVd>EYe;`?Cx|F!H%)A!I-|8GPu=wNP}q@w?q^K1dNa4EXt z7~b@!KKoXmp~=YFJYaCwUUky~w7PpX4NLti^}n&y)vKs&@@63CwaC|0a$3W?(EpW| zR#806b33|n3J`2e?T1|dpNCh>3iSTzlztxPos?G5|103ic%Hp1>HkxKb^~&M3MrPO zcQ#XBPE1-w{l5;*ji6rS`hORC_IzY-chdhSwd?=wXuiIN;lMT|Y0HUd$%_8J6bZPj zbT6=k{=bztx4_@A9O~)YSnso={=bFV_W(8cT6E}US|E2+>Hq7g8<(;K$ANbJufId+ z|JMR?=>N-*q`rn+|NkNSWjb>EY5Zq)@%w#rkL~|IPx}8WtWo*_>g-_Z=~7lGUCPvr zC(ujk|8IkjU){%$=5Mk$>q?fVcp93&yMz9J1GIiCei1vVEk}6s8tUs5d?emZy-@!j zLHoR$68jpqQ-i)rqLG;??@Gx(Pd$5qePHz;vi<*w^wggZ1MywSkDT^Wmh1mt@+Q~+ zf5i2Ff^D__f5fDOEOUp5(V6Z4C*a;g%PwO97xn+{ ztfK#a29>^E*8l&7e@*EBx!FKGZZ>6Kr*{4+OFO9lf5ncq&mc2@kN*56ay>TNm8t(f zN6q}p)S_5fnw4FRXG^aCzX^v!{}0JN&Lo`XtT}s>--Ku%e$?P&(--w@bo*}VV;vms zPXFlBbTG9B4k!Jy4QcMEf3BfLy%KqQ75e9dq<>E9RsUQE22;_culhadpLbDzE7Tok{&}kOzNCK+@Lj)`y~>X8jZy!+ zike^1KL@xE{d0iY|JX~=KTos3)Z<8=_J<4L>DT#+eT*+tzby364_GAB_GfE$2nkq` zjV-On)IW2w2TC8}FWR5~ix!jm=h!UQKf|)nKOaO-e!6r$wZC7sJ`4TxQ@$6sBK_Y< z?a#^CgUH@rQ08T!jPN62>4HfI~2|JKI4=v_q)3Wokiu|m}ZYzz*{C<_PsqkY>HYgj-e%N!fmh3U! z^c8*+M4}iOio3Xuca`Urd!OacEiuobYw5<)3XuPWpMmk~(&4Y^J?C-aZT=>IZ!TSf z7C&P;ijiMyhlm_wWGZ|ZqQuB8a?(@4wEZ}IV!Y0wK0Syx#xs_qQ3JSgTr4acTH(Ui zAVo>f10sDSge!2bvkOMe?>r;kL)@2CO($t8%O!HE<3W-HJFcnIL=qd_xaUBM~?wLvCP47e#_Bf z9HZ#rWfqvaZ;C0k9(4|m+4<+VuzxYWX&(AJIQ|tDZEXU+iy1&#q>XES`T-0D4z0dT zowMh;91ST5YWpkYz|6pSj$SLQ)w9NAi`g*5?cvp#KzCkBb zgqMfB>Kej_B+}-iq54|{Uqf2uf@v)ycpf?BqqkDdC*8?^jE6aX;P|Qh*Ed9Nn^U#? z>nma`|9q}b!C;P%e_?Q3p>xnjUYnG&3zZSij!yVgne}W?${a}zctQ^4YbA8e+jmNi zzoS$6ECEE`A^%!+oi!t+9qG`z8YA1vzoV0m;5sJZJ}Sz;qn=%ZI6{+ckf8+EIFh%xj@>gj~KVTk0F-P&^&uauHeY9H$Wu z(>iYElkVi-(QI>(`|k7OY}5(-4dA(>_syi0!h674eOe=<3Q{5y^vqZ7^(3i($C^D*a;|B%Wd#ONB7f5*M%gW(ifwpxfAdE$PE zEVRH={aEyscdW8`HD*guW zd?Z$(X1LbEpSJWBDVFj-mHZdc>rnpn4+!~p+`MxbMqW{amzFjGi}HV5S^gK%E6L@5 z5qT`*ZZYvI^6!32tkcUOc3r7seC2;JJ#dYN4ts_2e3Vp722Xv`A4`$?e=%{D z|FfX)Pcf@Zzq>?`P&bi2Z7=MT-peA&ZalKjMS%M)2T=D8j-Rqx{?2L zupEc{Uq|W-DX|HwnEHPwHOO&{OA}15pvU)Wu0sCzq-O(pQjz~NyOsZ2;r*c`|L4(T zSN^XpV{jZ$zaQ)6eM$cB#*(i6`y$TQKyBs!%}Cl#EEl=_U)fCwo#p>-?DZdQm;cwo z_XnZ%qgd3G|4$(+uSRaR5+|4cKcU38@@5Ks_O9~(Jt+7Q{&`Qu9Ib{VtHdkur}1x3^=TyAcfj6wBoc-N?ThtpOgdN7C0K zDQn>IOyD0#+_g#mms0ma{`FW|i!3Ss8=+}GDCt~F<-di$`ANPKYubO5|EMS*PV7l{*MQOWmv*SQ`RotpOfVO7|QKl{`X+F+QbOOX<&LM zcH_HCZz#+EtDwX}Y%4b-g>$e|9RjYS>8{{b=j}Lq9s%QKS{m#GkAL? zv-LU$zgoHcT!&=7D#_0QQmlg_XCqZ1Kiet)N~AWIpVuY%xu#uyE>7}uQRnQ*L;1Oh zk))4tbp_V1Kg7=aaFU=N)k3Hst3h_Qv19~GMuXJ{De)s^`PtKh{A4Va zwW+i)JFPS=TZG;3ZWiEr2C6<)8ka53l%E+{EJcj%En zcG3DyVQq#D09d5YSDDNCbZHkbKg?3*e~t!z012^vjmyr>8nf-$KLY)<>@qBF|5`dL z`&Q|U>G{|GmC$JYF>m4Z+Vs8& z8-e#>y)u?pwz7)^dxQqt$3o~ABB&ddHCyP$Fi&%|Ofj_|StQuQ49c5YYlYSmcNLa$ z5xmkS5J6mQ&j&rr4|_b>zSmn`uXFntVM&O7hWU6H+;=uG)7#zlf8d>7_VS~ZLYlhf zi4?bgVxL5dQrO(2iM<-FGeY285bZrVcD-btUR7jGNfc}QV_xSp@IIbIPsmvLyIQ#` z7hzY3yp?gKFgR+yAunP1$ZcT4l=Gwa63k88poeMf<0%{391KAl&p|yoEpAe*NRV&2 z{A;(;x}^LoA-Vk9bCmn`>9tsf{D&p0Rv8VnE}~x=c24DA+eJvAb}M6qZA^^pQO0ba zkgHnxYZ(ixsCE(O1?hFA{OjlI+Cu6JXDH?Lc6U{=DJK8JXhTWS;iMT)JKY_U<%I2@ zetaGE!ZlRne;g2ur%d~TwZm}QUm^eQ+1#IA#0YwL75O(8JtLdRQ~4jmduIyeeU@4! zgk@H$OO>dVa#`E5HZ6nq%9L^-Rg9(HD-x`Wv4^>QlQv3h%#PKb9`diHOlzbPrgRmT z{~^$MAUKEoYkAO$>&zEz68|0MdWq5pIF*JIFG8!ePRns%+Tt%?LK zV>439Ve~`i0@)mBFcHcq|I?s?ewBLDDF2qw3PvqJRSf>QqzU=gdwUdZ+K_+k5|e5B zG;?TA>?r@sp{Z7_+F>}YbLGF4Jf?z4wfxTkPHiSL=u6m_oZUhG?fKLWq22Vzca$bZ z0Hk?;;Lo6tL0g#eug1|!Soh zk3Y)4YX)ldloHkQuU*bLFQYj-V^7ma%MRA1zO3T5c!zY^$_|0TfdT2v$HFNXZj z1p+;smm^_|XxR?sZ87<&$p1nh9Fbb^T5BdHnRNb(`hO;z4*A~-9BY&OZ|adI)i3(d zGs@+E2hgpfKfQ$XtIG1f8u{Hy3%V6KE#VOn@_!2bx?=F>^1qEf?hatPB+35@dUZp| zHJATWkV+HHD{(Idb`TeYeTI+sN4sj*mejEJkVu!r}E?pA5G*aIVPz zDcFPbnp$4Tq?fDVSSXbL^P%WUdj1iuKVH7e7IjE zDF4Qs04=KJe=ohoR%r8@B>x8~^L+a5C1h3kzmzgJ70Djxo+1zR`hMhdF1_o=lltgy}`F{?(N-L1xg9Yp^EMI>KeXl3a?;-y`!Zx;>(%(zZSNXrQ&+L67 zK<4K`j~1l8wO#&OxR>kd2Yu>Y4R9SinN?7Jl>Z&zs^xY$JY19HUk|B@{GXTPe>YNk z4CRlYzMllOb`&8$@pAb;ms)=^oCQAWKhS z0lFOD;M?#m(qCEm{}dc~JGLX`|1Ysg?1wi+<^O$Ha9#w{_hVPfu*p2f^}XcuD|U?k z2v*d=**#EQ`TuF@pLw?x>&ln$mFlbfe*ma{i}h}Ec478+=>I$Ma~y_O(T~gWuLtu7 zp!^5m^x&+x{9gzqTi|9zel9M{ˬrt+=@TTjT(6<~5Qm?%H{3etZdF?Rs1@^d%T zQGTw6Cr@HUAAz0oDoQ?&I(P|OScY9`HTJxR`Y1m?1pXgVe@|zP;rZG0>}&A$eI4|t z^7C#iq#uGKr(knjf&H+U{`?-0J&3JJ`n)aGuZz(Ik5a$>JkjUDGJPHe!=F~s=ZBP4 zB;@q@1@t*1dk*_sU1@zbB9lH}FYU;#!teb&{QjnAugjK|F36nW=qZ>WHCR*Hh`D~tob>|-`vg1=awGV zd4DkQw+AVHfoG7{K3{I@(Mn;TGHf(tLI^(v`+nMUgej~e`Z*a)k>jr)in&+g?~HZV z$q;`>g~ip;X8UFa;dH#&xq{9>wN)qn_S6mb{hibA3MDZKeCAF>YskA3%^F7J&*Rx>>PjdXNwH@(ah$dRiHzV+$QfeW_ zLXO28!Vz8pL3h0#h61hDkqZ9yj-7$$Xle#s`*GzuBZk1={^lT{2>d7Vv^BkTw0#A4 zj;xCR405-nuZP976k{Q(Hy?h;a`1pNe)osU82FXtlk3 zcg6oWc(I?H)Exc;baVu4dv_MN+-6dg8vo#7lZ!- z@LALW{}n*KjK5RSadY9n^D%AP8N~k>@IM>;PY3_w6aHrs@4WQ>+A{vz`L5p%{)ZR? zJFOG`H_jILwPx?-+q8?gpHAuZDmX}~oADpmpWr_gN?Z@dIsb(JGVU9pobZ1f z-0o!L?`TRd{4+D*pPn6yukx1}p&FdcX9fZr)Dpf*{y!uC&yxR-Y4=Qm%df##I?w-e z)V}Kcf06P(HOuqQzZ3C&Nm;^$>bnF+k3XT2^IX&qrp-g;Du2@X9A6dnnf4~rdxVZx z7uO15Kdjiw)h?!1N2)h#1$%9NfpVR$*4F~)C`JAaGDc6q{$yxcf7QBr`sv@HCXP2f zrS-XGY1z@+O6~1vhO2<--CGQQ%QLn7tc_*Tn*zh-_Vv`qFM9DR`9LhF}Z%Yf|>X%SwJy{8ZUYhQ~t zjj8o64gS}*(N^<6Jjnch`gPYMtuOo^hK|%X%|24_zp2~?=nVrs+H7BpMIQzK)$g`B zOsyTQ<$51aAg%sVwuG$zwQWGoPcfGB_6L(% z>vr&eELypCdTDR##QC7hpx+X{hw^_mlx!`;f7g2m{%gr`uXkEOIOY18Y`nXYuT57#rW^~2lb?x$uR(^UDst|N4O8CF0%>VUxG;QlWF>m$B3;v%?J8K`UpW(DZFNFUWLeH~mrgwEHy)`Eh z+p$XfGV*^ie`=yy!M6Tzq&|ac!{CE6pmY9Dqc2b^ETtUzzcTTE5$&uKpx;E=(yM7x zF0GZEmTu1fedKchOUHTe|3o0al3cH-nf`Pn&HmPSW{RDUUsv$|^-#t232O8I71$b2 z#CCBnet(x@4S5{8znwPhLHK`T^1JFCgq;5m<6)yu+7jBGQUBiq|DWhRF>k+!r6lD_Ed_1{_Y zyK0tyW8(jr%#O7F-vIybq4oQ6tgN>d;{OBi|CN+`H6BS7{y&R-@JcMVe_gZu)9I_+ zg+=InRs4UN9>YC}|9@FC{p>9Ge^NFptLFct49~P|XI3kN)$|I2{#Pci#cQhQe+F_@ zE1ZobF6e(FSlm*k|5ZqJG5Sx-J^|f+h1Z_+pOXCq%ok;YGwJ`2SW|0-k0ki*cLe;u zf_v(Z`;mfg;9XcNjL8nM3*1l8AIH&q3iy9pTAT_0i#^CsrMJTo7ndkkN(CE)K^=+^3&TyHJoe=%Rneb}2i^M3>1@X_cL@yB1b3;xYO z=jwm*-~Lfp;VOl=B9ATk)=~?9BfGqJ&B%$??CYl6AUzhO*yO`dh3#Z{gei&Mx>b zDdRsIE-ZvkUGYDIR%76QI$xB|_}$7k;wJFF4NKmYv=8s?RDR(99sIEa|1WoXFaH18 zj{lFk;D2Ez|JN|aCI8pq<=rtHPVk?B#cL+zUrn2rsV%Ohp@KLGsi@Aw)|XyN}c z>nj{$1m)klz#sX4gZ$q^{=evw|MD!)|L;nNv#$AfDz1F1rj5V++o7KJ$nW#3cwUJe z&m(UBE>Ba*F;5+D^1M5rBNyXVLM0Ec{OZNo81V(Hl%_89y}y;GabMAsepCE2Mjku9 zGZCi(Rply&%qJa#->R@9_&v?PTz(;fz`UW8{`fq3;;9VQGyrn9gsSUl-H(RI8VG`OK$LM&56ac8X~&MI4MR zgnk_&2fuJy+r&Q(Q->5(zJ38&SNM#pAEh~H3(~V!dPbgF=fo{a4Ow;U&#$wz3$IR7 z*lG}`;B;>J^GhyXTB-cjnZFjJpmgxsZ+_0%uJAd67gW~QR$gdZG=;u&=A34s5(v5<_y-0;Y)CkV9jxA+3Qg5mITMD?xmeBJ)u4 zq6WseaxS@!duu(_b{Swf+RPtM#8xgR{ZW$VchuiGH>r?TyG2 zHH-4(c&OLbX`yzs)p7oyf-P)op(|Hghhxk?`aRNDdyH~u&2K700wPBMmqI{YZv7DFKVlFh#AUqN)KG;uZR9~74DexuC!Q#rJ>IpoiOHT z?pzhzxhOHN?MQg^d3xfnmg$cAPyg-Ef9~WP`Y+}PIBVFTM|J2w?}az;X)4=;oblgL z|3xoK_|#p_1`r4PI#Ot$ zr}{CGH|jsV;H_n$|D0)|uY9ZnqegJw5dGqvS)=tJ*MCZuBOiMH3?OaT5l(tyKBG-Sekgpt>x+nOi&_`EtrVv+1XHeoSu3dwC zHh4}2F2@)gQ_HY6xC+V~%9=vl(0{H>;@k=?5ALKffwY$EsDx`1%;IlyvM}ql;+W9X zBoVHsKP~as+fFk#<|4! z!VG=~kgs}C3e52_v8(mpRQ#fH{Wm+k@9t+9{b1X8i?K-L`fp+KsG19&?)=@z8~i;= zE!ac`V7<^^$G-m>p5*#(Cb7&#{U;Yf|IH=WSwJ@poaZ1VGfCkpFs^&Okh=!*5@J>_ z?2&%Xaa6*US?gka6P*_q>xt+3&z+^LgZk%({snjv@zJAg(*b3Z~#H9=TP~ z*#wSys&!oZMk%%)hyJrZG?Rl~bMYl}#)>O*=~rZZbiCSKhip-s$`HTlvivg*&bjVT zuK&iu2W7^cHA-;DG_$#OuNZf!2>qw+&EO0m<=ve(Mo}}=e=}1Y$EwwT`pY?fHjTS+ zlqAdpQjKv98m(a3>zvJH=nCIz>Q*bMn~@0jz?se6RHSSM_N|KkTL_*DdF%Qf!rDv; zQ?UX~r>@Kf!udRPZ|;Riocd2cx`E`7>%TdaGJ(|Q;I1t0C^Hf%boHPTxi~+=&=tNd zPedsItZ#l8lf2U&63jKEysWy;v zMv5tT-JMK~R%R@?U$gpeB{``7&fwWBMi}P+iTdv}o}CQk+^^?%)qkguSF{6a>Ay3G z=Xi9k|IXpQqW{jqT552m{ZeTY@L2;Z`foF^_7q&TWE(VlIiq#C{yUKL-#&71--$-v z%!dvaGQzsKtp6^?O1g$885T_2e-{&L8@ARllc6wFFE3^^UHzvI<~hV_!5*mo zJ4*VC;YH}bL)fBwl0U!N&Rz@s=e$|Hbw>f)B#u$Q>|7=HrO}@3ici*>*hxnj8=B(j zJFEVaqt*#MP}P677Sw-Q<70oWe#F#^Vi@Tr^4u>^v>&8k*ZMJ%c4S zak%Q28byEzG?wa$5M)%wpbu-J)#`pObf2tme*LpyqQo zg%RToVA@gt?EudW)TGnkxcYBvkNmxgn7gs^tN$*bK3)VQ>c0!nNt>XFt+NI=O&(n2`TdV)vo5mHh)qmGu1y_S@hqnD_ zK^*1kBq(woTs|xLn5zFS0jGYv8OWpDVf;D($~}xN}9N(0`vRk2d@fyzgHBJ;C$G7{PcI=Uo4}+Wei|cOPzrUY`KF z|AiN?`tJrtW?qDLZ@`!19%h)G$-AGy|ImNWL6^tL|6<~V{`+due=iX06CL#5tx5kq z%8a9Tg6)^cDc64wL(hLi|GfY&9%q(Hi8*ZF?U80aQDSyf*=(`tLX(SO1+1?OdB~6VR*wHm3I9 zD(K{DXX?L|N&lUj^q=3HX7U{YY(pr?w##YIB=p}pa%v(~Pw<_HtcL!310^k?Moi>u zWNTp`QZkF{T>stDN&lS=9?p-v5&idOWaAFJnO;UMI0es)di-Oqz|VUnb!0o^g$t16 zGr-aI-(GZ#`tMEDs&|!IfbW`K^xxkS?`!xRssFx`^xr+u{E?*pK9Ka^E2$^yzx$c} zr5xXq^xs#Z^*fP<7nn!&H1obf|9y)YlIp*^;qgFLs8au_Augtr&$4FKNgPv?r_|-F zC-k@N`tN}r>Gut!y^eK|zCfLLlrhndlj?iuk>~grs{g)QdXU+8q5qyw`tNzXem;*+ zPqqGg2sk_Hzkk3->xbySyU;f!Rx8>K%rAiV3;1(6GfVyVC8*k;>!0?b|7K@9*cCwi z_agEU`tMtC_ax>3EXu|*mu*Ov>%W1_4frMAHR`|LAW{DW57mFOvtKiJ?6>H@^YHIK zHH~bp1g0t3v&F?Uz01 zcI)r8$mR^NaL(*i$l_~|D(mmHz0}{M-PGUPNb@u@a|ii91Basi-i|ljJJDUYr}}#_ z^EMxZ-&azjHo~Xjc-`FygpZ{9`!?XZ6z{1~;QkP`#J$IkK)-{?^6jbqzL96PUmX8# zB2~}zcX75Ai5mu&8d!zDQh)n11LO0hp9592Uv5E%KSjLy((}}Thp5?KDvi&+o$Bx6 z>^-dGbpRo#AO7B)`1?bo@Q3&oKApS(zL)s>sl?x3C;r|^t@<3aeGw0? zvDEn&!Sa*T@qbJF{V(R6{HpXX!1^EXrWSvfXQvQr$HdHGMu_)_bbTTT@1= zupRf~PP@oU3AS>=*6&rZpgl51COX)cN>R z*t50Q6b)h=W4c=HVg^o7wP+4`yzm1Mp5pY=ejg)Vj)|E=jN;{a);epqa}-uCI0_#0 zFOI)ywUlX_ig~tDK+9RN;MlcRbVvDOgkApiHeTI1UpeR~fink`0rSzWP%Jp#)Uj>t z?%MnUj^g+$@wVZ#i^~Zyaa{4G1i9zPQ(yS+IK(K*v{d1t52Atmc1j<8__!(yr@Bgf__FzgCORUXPtqRqm&d z&N&uLT9S{n0>D{*?ea;}Z@TwFidmDaV@XqR~@K|EY}%GJJ$2ImUTgL;!``8d|m z%$55L7Y(CmXK4fPM_(Z4zoQ{V!y@|lLulOu|7VlSMEWtaiYBL}sy)aR-{(O0*>F>z z*y8oS!vE>X-jvb0Ttq*wXqZADO#aUUij6OU|EuWBHDT+K|Mp1b|CZFhD+)m+UOhd; z7Wyczc3m`RS((R(&}7zQ zzYYH1LTh^uE!N=w?Y|TM?}h)gNehPH|LwH8AH^in7S^W5^(agJPlUpv_2$$MTx>3x)7 zi#&V+qnwBrn8bB8^pVyckf{T%fHv~9hg8Yi*uUS9!zwP8V;eS}h0k4#HwA8St;a|n zH^;}mR8XThbkS?HJWI4Rdr#q06c7YeDme##qwMgr4F1}Cu=g3y%)@(gi(e(cT!QY! zAT+g**{iXisvnc*C^46x{4Df(LPfb!F+4I&YwuE+g+(aka?sd&eGmP!Jf9a0_L%j+ zvJV?QS-sS9Jbh|kz&^I|B974JkmQ&}3VWZ%j6S@-LhZA>gz$m$X|Z6bVrBnIjOC3z z+<-~^Eki6U)!1Th9PjmVG+m^LxTdy;W9+Em_TC~Fy_KX!UpQP84yAK z+c)7oFO7XB&f;NQq4Y}H>1Cq~6b-Syfs_#E&=UU-dv5}#XH_12KlfxZGnr(PNivhn zWSy*&ecu-nk^o^RVP8Wa0fHd}0t$*apa^wAEGkL`7evsqh)WgRweGdHSSwa*YhSlo zyV&}+-`nNu_y3>kx#xLidFFYB`hDN~`@KCg_j7M&xwdoN=UnGH=a{=?%Po7pUPqr< z3xFkwzqSD36q?{+$gUQWfJxYb-}ZXF)2lz|PLdjfp1r1W983#<5LvpCA8^PKp9-6h z%cJlB*2BBY*KL^geUWrPz2~YY=xOMaxC3W2P6d>u*_}Ty?Bn?t8C( z2~31l{<_Ytbknm(I*;Iqkc58Gn@Sq`%oy4T%&m6#^sAC8N|D}9QAhPT5Kld)Lblal z!Xw05RK!V-#`sc&MM3Tw#8s=R9-)D&R)@F>&#T(&hpXv3GGm_la@rTp^`8*y5fHk@ zc=~qZW1&|6CxG=8li{E_uS4~esH+)Az?h2cH# zswH~3>FepdQvKjU|Ap^*cxy{@ZCuVNtxLb!t76SrZ9ZyIYrbA-zj^&8~xG&Kq^_G(GFw2T`5im9(44Ss%SxgTB?uxU1iV|E%8F`hMy~D^1%I z9Lk;43H@jPqm6e;+(fQQ`cL@s73ze=eHiu56>3*Lk39pebF~J2Cfi7>{?iiberB#k z9Qx0z(0}ger?q1OvBJOCIkxH^@vtVB>p$}t1vKFc?;eG&dF{G9KCQifHJ%*AvXhcy zFFb3d`p-S(JoIx{8ui@Kf+WS=%P`tZ`utc|#uLLdEkH0C`&MYaSUFz%r8|Xp^6QKP zuWJqJKX)_;{pVhpdN1jJmFvGrz!GyIv=O%Ax1-HcZ~s=HRW|gt4*e%D-2=@%pVXMz zG#k^s`#eqMPt3IS)Ee|V%=Mq^=DF*c);i}AcXF?9x1NRiV~758hc@+}t6!*#)H;)( zNUX}PM{4N5X>h@v{`4aiUg;k*K9t>BgKPEAq%19;t~%{_s(#{@-^soEz^VWArw;um zf6MisbJeYx<@(PV(4Alz)XMeWOiD0j2f5W68nElk0*cUo?!z^MCtYyDoh?iHuY*`) zc`_SJX7wO_3H>*lC$os%2t4Y)`H6PwoXLqNwL!QD9L04ZIq1#po~7;xss3}- zeD{@fCxyvSO&ODRO{7qU^yW8Z8>!@>^IY7IvYwn=;c_A8T>ni6O8w>3fAh(q)*wXP zl&}by(v#3tGABWacFLI!ta_TO|MbdtwRHETYyryo;HCbX1C16Cqmh{EKlcF`&9i05 zqnd6xb;25DP19$2S$bN#{#%TNI@f;-fX?c2Up7>@qyBE>Sw)pJP>xmM*0EP3Og#2lcTM_H~q z?>?R@sW+kj^ylj$uKI5l{t2%B)k6HG{4L;q9q;rf&Gp|pp0(f$G?lUz0r7D3pYsZo zh;A%%?p~?>+niwTQ_C6cr)Or`foKn zX~o{UjC|MgyA=L7qoCHX8g6bQmy-TlM%k-?c_Q$t|CWSP%oxzSJ6;X z7l5B@RrsWlYuDjjMQZh*UhF|2y6H(Mig@Ww+qbGf39`31)Aw6 z-T=ot@UU6MZ?6B`r*|Z&8sL?FXRfPi+|^KPGZ35z7V5tZK)Dzn9KGy9|D8w)zj^() z0VrlMHZcJo^j*MpD)26Ymg+ip)XeqY=}=4G{02rL)PHAiKLglWxQh1QCStFzmA!Zl zt%W8l8Iw@|>7m_O*bcWt|G7?=KBr5daIXKBBW-8!ME!R%DHjrd2T(MSx&e=%laUSe z-$wFWfZx$p{?I83jMc%vwJIUA;wND;@iP5*MFzrA?DL9wStFi9E4{l z0!ag&Sk2HT^xtNnS(}d28SObA&2TbM)-#$D`fms2?4^_wc<25BClK2-q5oWcV-2~f z|1JR5&B()r;Cm{uPvCc3&G21-PEh~t;@rR}jQZ~y#uHA0BNr$AhldVyQvV&Itdjn_ zfRP{d--ST7jnSJE$l)M=3-IYWLO$n_!ydS^jbGO)IRP4y!SwiSaA- z-?h9wfjCEM1CCg^{<{RqPeB4FgW(m7pOy6A^~B1c#$}YXoSM)^8H<2%G_+FxSqtX# zd^xsQ}nd`q>phK-8^xx}|V14p0hR-v=vI`$n^`Cy%FM|%D z|6X3WoOjdkkvo;~s71)rg}m#;$M_B;xC;qY|6PC=S`S`j3#sLM;LgFK{<{(BwEcH4 z82sk--#zHR8-QQ}{+@3s>c88e z_7eMbc;gOF|GgXvJV_2cjBgzQitYGE9)f?j1J6+;TR+CofBMVcP0e(N(Zfmq{T6h3 zJFuw#-pO$`{)VCd-b|hg@Os?Jz6SSFSKf;^_Z`4@hnG^Hp91xF(0|V&i_e2`6BxXo84v2e2UGj+zx7|V|NdM56_Dls zz4f2t2>GAwfcUd|WvPz&8&~CLW7QTML($S^e9s1-#C4qW>+~|k&Ebf2=20m)qLKfZ zPd@VMwW%BzkFp(yux#&R1kmgJ;IhUL(3_iM7zUwqbi*=BIT)`* zAFZn~#vP--j^+iPmXZH?ZTVs`c+l?Ud&jF{Y)!}=zcLS>1l;ECQ?YUsE~pk`mgZ0? z9?poMu^l&XL`%5DM@+(c>-d4R42-l~+5W8zf6&zOg+~lx&*+c}bFwWJ ze%S%5ql?Fq4iyfQeNDdI%uVpSlhAVZSq5T5FgVI9zs4H#SHljUu{RI98t^V)7={* z&&b_X7o?3ND&|lbe)$;VWkPNb+R>F5Pl(ZM<=q&L=*6f-jEZVK(Gst{v2y*=_9wos zOyLR@;iv7WXRJ%4bzNvf{>4s?N;~In$GzOB6qFa=J8t2~p!0uXy$Z*&V(d)bhWtyN zSSiENQn3x0s@-2)i>9_HThp$2;dq22Y0AGg6-Pals*?OWf~QaW;K7yqmHHTSc0F6= z-(9U7193Fc6=fZZlOm3lC@=1A;Yg8V4whKC{^s&O5je+^m!rq-VC)JpqiBD}$~vxR z<5)`2ESG=x!f54fTWNAMQu&{h$`-f5L&(45qV93!Sc~5B%D+2~O(Q=&)}0|9%1o zGN1nUXnIM`Ehv|NM@qX%`X?1CEZUZwnNWoV+`;yO*P4YQE)+{1SUc(}4k z=>OT^)6CP5|9PaS6lSDUU8KzAUpS{zqH9zvg}dYF@46z(VzO{eBS$}`)8lHQOzAYI zs{Aj;)-xAaR)Fs+Qn}Z1Mv2;w8^A^RUq@+LW#`kE4EbN21S8B)`~C*!@{u7iSvzDE~_+ zeG_-bb9BLjj>2{@QvS6kpI8a}L7wOGzX^+6$p32WhRXlOqWrHelmBf={wvSNXobol z|7XC@x%B?m0oD0DbId~dcZHSnC@JLsI4Cm`*yT+(mIH0ZjxS~b2`k|wa?0g@J-pq^v5E3`Qc?pDIA4G8u(v4x7jxc-UFk&NbQK^ix-+q= zIM#6xJKG#=w`;&HVhjRVmZ~^_5Bfo!xN}7LHv0_w~yEZn$`)DF2sX zsW}-d-3C%A7yFa^Z?BX+G7$2=7fCxU$^T19<0!$=MB^Pv{x6{HC7D|EI#e(ZF+zl($2dli=7!>{B8Cw;``bll<>3%Kwc?{$GZzXai7OgNJia{d3NB>%6inEf@Rxfr^PMgm`(C#8QvScu zEC1hM??&bSo51%=ut#GKP35ozE}R=4G;b$$^Q>2&K7ZBA4?CeHTArS+LZq#&a-X(5SFJcgZ9hgREH`Xl_I#^{uzqQw(H}kNAM0)F zQ(Qf0*U;Xe|76&&>=oKa^hx!gl-okEG zzA(Rkv_bCYB>vlT)r+v1bmO3){I^Y5Jv7sc*OPAvZE^jtTe*w+zkv2__0R>S8flZw zhTe0@qZ_z~%m3x1U7z?rlblwkUQQ=HtJ?X$FiG1=TAjgv&l`ZLdgxC4UzqFz?&Y2H zzZ?Fqsh*rRqkfmWp!&8V|Bt6VHkWqVPWlS9hSku2DLssdOr|<3}+i&J?pTTc(9(>}T?PAAq%_Yi+7?vJyZ9hk!!;!o^*phYx)^>fg?eqRp9>cS_ z>NoCTOSqKYHhJ`?V%}|xsFmK^>h^nUJ52bTkysADc}5${G0>b=rS!J8oP%Tw))ky$ zOs)ihqjk1$9YfTP?Kr6I(>w?B6n}Gx8Dx$p=5K{u{I$YsakFnT82*mWIW{&p{*GKa zc3`W-@wxK+1AoVlobxl5wu^IzO6BYC>pt|ZGbOBgbd{%fw&4_Fn9f~R`s3e8iX4C2 zmXpE9*+Y2=j;mR+_&ZMI%&PMIN04F)Es62Gn^VMpVsC0PO0C3l{GAPx=k6X2_GRW4 z@ptX?X7VY$cLjNO5Glt$U+v!9-Q76wUk?6LN$)I|Quw9fq(2c z(T-Kw86vi8@*Ko}Ef%#gv;n5@W-FS%JpUYj?a_1iF1v>N`rgz+*v3&A|6Sm_o^ML< ze{X`e9RD+l_@4+Db`a|%XmMIu{(=8yzVFL{?M&J!eevH-jz^04pTPTlSQ5)?U?-lR zqxr6!g!JY3AMJzx9&BYdQf7|-Q7p_kb(H^o(B)cabP4z$!47>rcGJ@P!2dFGyplut zKU|i30n6?cd=noBvzL&U_}|MHuay2N@ZV4Q?*|H3j6R9$C(7Qx39I)+zOWwx|3?cS z$Hw@YKK$8@zv>Y@lJ&d(7~Y@#@qaV;zq$|pzk}_$od1FU9~ANbH1@=AmX-hiH~u-L zJjZqZga%O&(Z3@<&f$K znn!i|JAb^LZ_6kWN~K>R z*DH`K9pq6h=#8Tfk#Zv>!GHZ1T2o%t_~&kO&QX*9Q^7#~Plg)uUrJO>spyguKQrPr&DeGpI_v^WlnjK{9gpdizvA}@qb>rs*V4) zxaRWxROXgI$(c}bF}N%Q`w`?>Ex7m2RN7SXe--?n&UZZcKc^=C>y5G`@qaGo;C~k_ zK0PvK!q;m2n}q+uI&5kqXuV7Y0{2A^{x1fS>iqA9;*Ridg?n3}g)QM}HYFllm|JPoFws_EB~!g+JYfa0A{;uyzQ6aU|dEZ#->q4{?&^N*ea+mHA1|6SDouO$9IRs;VZ zqsG0T`u`u;!{q;8VV8R+{QpZZ`*(O)E&LzD|Bqyap1X^@_yeetiv}AI^;|aul^!PD zqa5EM?RPoiQ2{U(9i+SQd{4hK!e~r!aZe-1!R!zAt<7 zRige5<-U{iH#q+R$Gf=xLyq@w{Vk67a{b2~@8kM;&VR!37}t+;{vhWUIL_yIDR5zQ z?NKp&oa4t_Us`it+bw#sHl1dL`GyGcPtXiMW)}b0yEr z)3b-q?ucip>{k%~hde8m({nD@9v8%s$|b*)_IA=yzWEh;I9H`H@%~>4sZ|aGJa^)IW_HbL$F+{PiQXsl ze4Mi0M46xF_#D??;QTrcarkY{!gfE;p8>WHbAYe!(({d6Z{r=bNi>j7Z{wXZF5RTr zEu5|I&vU$tYvT0m<$9PQaU0acj{tIDmyKv>Y94wNx95+5;qx4SO43hrUc>SG9LTsP zsh$tic0Dw>0s}N7M%34j1g5gcJs$<;PjUPfc;Cl?lqMQNyF@o=Bdz*8-(8l0mxwh1 zQO*W*2z$QC`|ps)CpmvHa7j45nQL(y>}+$rJk-_I*EcjYHjWsWf8qCl?KxnTuW#f! z=XsH*!d+l|KA|a;HWT@~h%KbJ6d@Fpeh|fcVoO6DPukVZZ z1GA>^RQgClLqlD)@}DLC8#ur*$vSeJ>PGRtOqSsgm9D;DiN^m7&y+Rc@=ylz>k=>O z>gyUB>-(pFl5(G-{10({hV!dAA0Yi}xPC3ymvQ~C9M@9De{%dY*H3VMiu2Q)w{hOi zc?V}{a}P&1Y2V0sbuqoqmU8WT-kE>?K7FS@$8+=la`C-!JxFhP#t{a~Pw<%ja~#AU zkp6no5I=w48~+CKyOBd!iuedm!iTbiC*?1EClZIIaVq}=&ZiX*p4A$VLG=h3r>dKj z3RRfTMjeJDgVH%7{*y7%xPt_6?D-1MzsC9N9Db7*bID@jy?NyC%j4TtGCq0s(7d(n)N?Bb>HFOKtoT0Vm*3~*36uE`lD-^1 z;Srxy2KnWA<@ofbFM~(;5{#BldFg23**K1&LgEK}spHSOl+?UD;Tv8*0%p_`>guhz zb#=`0=f+6DE$IFtLsQLdHK_94t(yKC3(a9XS4j zV;1+eQ12|1+pWHch*3b!he$M;9CGQC&_$SW4=3X5-6*&Hd z>;J{IZSXD*^jp%4=#11hrajU#m&0%1eY~5`^(d~#a;R^SxAYyNEtl@qPvC+pOaYgU z(5D|Jj`)6s<6fS9jk7xBRUBXE{#%@_qkqcrJ?@|4{8G-eCv9gHKF3*o`$f*yagNmH z{0q(><@gcL$O~8cLeF1u{{Jk1v!QtEJ?Bq+Uf(p@M(M=1j$*TX?!1(y{O66p?RVgJ zIX}Sp9h}8m+}_C{Uhn6uo|3-jbB3l#k8+K9#U<^6o_BIq2lyNw^jyuk_E4W1*2Y)Y z6k)dx`Hd|Z`*MVNM(7!bO#B@e|G@RHIB4e=CiAR=!*AW|Irx61cCp{>Hr@;0l{}~2 z;5R(ASJ7dqZ?>Oz=Y{65cqz@a=m!$CVxI;FPS1DvIm>BL!DUB&U63Pm*iDvoSG z2aIW%G-a^7ALrry!0;B%Z{tvY!70JJo9hp7t!@VQoPP;_-eFFR@4S4ygX1;a-^KZM z&ft}3r0j!N&oa&{I9^<+BN<KLPjfuS0q&^{ zu6$n3^|v|xi0kJ$OONUy<1091NIK&_qC85Tk8sXuww-(Q2E*|&v%?;}8bLj1;);%{#qY7Cei#_%}Ht2T9ja4-I`=vV#yUqQx)Ysh)RpDXqXO z(QPi*MY<*0ZRhzRp2;7c_joT&IVYQj_lr0#=O9?VN9xj+Xb>;^{o2+~xI;UPvWcz< z4q;fpGifSZ#e3_)`nxde8HE z(qDSUhHu;v!)LUh$0fGBn;RZ;)`P%Q0DfeKUodzNx7N0LD&e z@0{K>dq9&3xgIm7wY9x{(xl0@ejBppX4~fD$4{8h);4V>-?=fZT0_-nZJNWPH zG_wS5bKS^>`j(b1%&ZHSM;VoWQwmA1C6_-x4I`Qxvic?}%E-nsBl&3_Y5$_Jd34Lj zQ6tARw~TH?6i1JpFsajq%Fy0OI`OUo#*nA|aC>ReTZfIx%B#>P=ZYN2&HAV+950`a2TGiEfdfGX}pw8kcS zL!%+p%C&`+s|&z#^5Me=uik&SYj4-Q1I>}ovSrH;A2@pDzN-%&*>}~U!v~Kozv9SQ zH(r0`SywJUa^q>c&f2*zzu&jxq*ePans;E|-g(FN9e>^htCn5KTAVxgA31XUO~ENJ$P(MSMTG)hi~LTSKlWhM&ho8U9V^^?7!mr8*e&v z^(r{6EI^Xq6 zS3!V>$>Xt8@m+Au0vZ_EV*{;ip__% z%sa68(Bj2Qu3fx!RT8d39yguK2uiURAG#D!kM1i0NYOm(rDL8}!6W9r>y*QNSHAS7 zgGUc-*vHSxbqmU}?7H~cOBbfZMLv|JUs*YQsrVt%18x}z`wtvARxH0%DWd4SOwYB$ zy?A8~d0BdET5VvLk{8O-TRw1?0Tyx91H4<*!ngv0)6}Rl#U?$~Yhe(io@nYV*vQkxDl~>h1`ofHAq&sz}YjIam zX37Bwx>e+NF9lYV&@c2$Uq(pvtBiZ0KZYUj*e6{Ev1tX6?fTtDN(npQ-OJ9b=Q0dE9 zT2_9UKvhiKM<$1ae*g`mR^~EUR&Fgo50J&O^tJLX31L~f6xO*0e#o~QhJ3rR_*V8*YBsIN z;|vbm%0BI?GFro3jJ19q2H=1 z^jlSheye-wr;KR{>6y*(0ghksfN`k8aU2(NTw@QoU(g1sP5w_KzGGIoiDzOqazYcM ztJuYe6b7nYTCy zXkg^rpcIDzt=wF>4^5hU&L#?ZLwQopuCfwpyb9>_N?lq_Fk-M${RD@(xZ6!uGhxSzM$sgnT%aN*wB76M0VFOO%4e>bt#U6-F6bmUf)IG^cy1#H` z8net}40)#XWEt(5hiw`A4y83<(-f9G08_Gi@8PZE1db8h$?;|m?c&(VlYi2WIWx{M z>|lM-T83~X`?li(;(9ap_i#A2P!@WukJzD;&EIi>WC<;c(D#yM4STjGtLaW`%O_$- zJsDb^);Chwoz~Ntg<0537co+yJyi{$ZPZ0w`vrt_$j~qPfZJD92}5RH!^;5$4)Z}3 z@T$HJX;9T9Cm()e-k;u+4j5pmXHJX*2QlkfE2VKF{>XH#=sR!6xvpdRjr|uRe$2sh z%^+uFmEy-9VD5Efdo;Kj4*IXF+zl?{yVEHcY= zCg;eMXZ7@X47pGqTn(X?V2Q4F?_5u1B~}@8Ed=LbRu8Vm<~s7OP9Ws2H1CSn&OuZT zs)v|)=o~)hytz_>GcT2TVXGG8SYQ6jk9bx~dNFr}1yfmLy!T07537~$dJ^L898znS zvrwH6>wZf8c`{gDu5j-9@+-_3o4UHQRP zB%F2U-e4oR8dpOGZAJdOPIvI%*_Xlp$u*>RAIo~Mbv<(Tdv!JM;qgCei?o-2QeJAx z!^RrQ&m~{}I}>!mF$oO?iC;>)g!g@Us*Sm^PtUZA_cor zU-cmWyWp4m*&5$HpF5y^40=~jzkn3M|LO35DJg^ht{6AHdh+zeEs)Z6uggR2{9m8= zzn2xEwlIVA?7~j?ac-IgySY5W3fEV#W=1nSJU#LMoHG7zD%8$@*H%7?8_Cu1|HdN! zPtt{?YH;65_kVVm>S?5$j{LeZzpK&I#{cO^>v)>;b%oh*E$4p+dDO!HRm{EXqI;3^ z|9IAg+n)HptT1peeIPoQ(dsy)$nMl|3AbX@8`4RQKEB|lBMe%jR;{OZq|8eTyeaQ(px}x&`zN)1cC~sS~BJ0Zb7Ea85 zi6gT0e@qtqw?$qpbQVqobL*e0jtBjBu%f&5uU7g$&D`C);Y85?t*k$P47b_Z=>L3S zQP#z**Ao4ITv(AEV<*Pi=--JE;URXod@Jz(fVJu#VyDS30RLOLeykeuy#GR>B@6h! z&5Um)`eJU&^y`oborN{4M9jguJh0dRt%Kd*uD8 zcoJ>(co)}}6=`k%MyowfDTI+n;1|C+9U|{MeGYei_IYi=R(}p@louF8U%)j)O1&Ug z%=Rzh`zCsBk%K*UdmK5;QNFRFXA%8z%P?J(lIL#9piym5mtvWhdD?fh4`4o}RfI}y zSlh$)=q%ZI_E92*Z^Sbo@=bnaODL=oQHD^)mAzKsHJ!aiOEp*H4?p;wE>9UfpWvnM z`iJ0%tNslPQa^BrSl)@7L5y7;$hEYUwFr4G#>!(BU)6B3zu{_0?yP36_93LGD=fPr zl)RD7v3p!l)SijbtXrWWcorP;jXAoSV612;HnDG8tZXEA?4L_<%abFq8hNdK{&KYB zo~eVcVq%V-Em!!xwl%GV$+xc7WS`%sV-f`Rb%jct#n)8~T_@2Mh+1#(DO1ueR$nTIt(I%4?3&`zcO++57q@KJ6m->dSK0QRPmEQcT6p%a#mL^f?L;xN zCvL59U2ySm-DFqE)()Y(yR(l}YT~KZG3&chD@Bw7`~N;4eo!iIMq zmDtdNK8-jL%Qty?E(t#OH;)$@##nJ>YOnk=ULKc=7ZIZNhBi~`g~eymGkVn4y{H*p z$%m*VUK_j%TUb01I_1w)QeDhLON9=Lyn}9*>y^)j8|0f1M4b#+up zUaBolxmCu)24`(^RWD;J$HEX03#~XxKPeHb(#MsxM67dtq~u$#tk+?)vZjcWwjXmf z{_sP8{jUwmdZl)3up6Sf3M{*>yRW4ZoU+vWP-^-pvCKbhYrK6lO=W z)HrfT4I0`s-l*Hvuxd%a-|orkS%}qb!WnH3TP-mz7W=k_4ybL!L5TC<`h&5bNwgH? zrZiECTmjKtTII3(0$RUv{cpW@*UPZjT4P&~bnEAMu#^hw8>J-br~8~*$HhZkp}o=i z`(M@n?g@|~=ehpxAm1s;dZGTG3_ONLo`wFOKuu6fDbw1h+kwmaEM-RlVLQ?-e05wY z`>v~}c5pXU^}joWhW>Bmtkr*FD!Y!_WQrFPoVZawRxqACOZwj(VM}2GmyT1iKn>7F zupZ|j^#3GoOZvaP_;Mr=x-;t(Af8Sc6Zq3&Yf%47o8g9X{of5`7ej;4|6QEtU{jn! z2@U+_`hOPuT0kuKGFAW2qT~+Zj!ax!z^~FY1Bg0+aSrd@!9vSQC+XDxb9g=%>RVpu zf4SSl^V-Jz%5ijG3-`FKC-1)cznf>}`hPxfcTw(2WMKxsOBwYYgT@Q}KZUDS-kM9U z|K0VY9ozm$Mi<g%CS0p=zsfKwqRYC)pxFJYb>>yEfK%Jj+7|#Ih>EH-!FI|F|<#=zq&` zKVfyB`w#mCR?kiZ64yWv{XZE@T>DjR(!hJ)g#LH0qrUpzx~iTMPFoob+`Ipgnn6va zb~3zJ{qJa#-+%X4Zstn;Ka;!J$m?vltNxz>gi5=stGbu+eBw-`Zn|bDlP7uWv*uJ= zr;ytHq1FE#NL@Yetg~u@spP1wSp7eXH_DKs7mX?3gvKy_){=XMyw9fW+2oPy|8-!a z{+|!L1>|=fB`oCG1SEMOhx&ghDcY$WCH=pIH*1l3_5VuJhyGs)lu~#u*p=&l*T$C$ z(f(hbQVaw1V$`{eIu-hiHMnwU0c{{p*8u6#VoV*H)Yv=I{c+GVLVx`~7ii}K^W5V5 zT&phx+iprb4h&2B-_o6`+YOC$RY(CeQ_e( zZQ}WVMgLy{&&%8Y7jqZ-e-l(c1x~B~FM!Lr{=dAi9qBq1-Z^5e{=WbSL;r8%nfsWY zT(}I(<}-;|{eOU1m-46nzlh@!BzF(m^Z+AA9jrTQ{T^QEWW>c4f4dmNT19DBLxqJn z0jmFxCH;R=AN_wObUXsZZiaH_1H&%3)5s`D15ecdXBA#Li2mQlo1N(YGm)Mv7#+JB z_q)TSIv&0q;P1bp|J5ntZ4bgd$?Eux_P_ey9W&gU!TsU2blJ;n1>?~FzE!ik>$$xU z_f^+}qNM-*-q{;6)(qY_s_fS;+7oIyb%y0fUc;llZiyZIP3D~Ie|MqiLShzjsQH{1v?m;hYiQ4;O{#XM2}+iP=;;~CW8R^r=6 za;!J>e+O@d8>0Q6>;L1BA@%=qN;`>MPeDFT0iIQ8q!~!lE}-AV^EPVv8N`{$=;3lC zXlH6`wDN3K(*HYv-x|FhxVJ+A_b{J`M(9MV?IcI{{;EUU%;JsOt)13{df4{h@WNW^ zT*lrNq5robzmB7wg^Y*(zs$uMkkoa+k?a5cNb@O3@>1mgbYwa7{|2P_0CK$+2|pfL zUkRq_|C71eLY&b5d(xL{7rD1W5%vG6NRvIa7pMPs!+kaItIN<<|L?A#|1Tom&J_2x zKoH?dPL6pSZ2uny+PP5saC(xKXh>H#KedPFF#)FR{ zGkN=eE&AyO(yc?2J_f(%LZ7oKZyh>R{eL-sk8un)l-mE*^#8rUe^1i?x5N2&AU$72 zrqutBfZv@g4$@lq9PnQY+^=M@iU!7DA7@s3(m)#)qo6?k<7SpSw$_HQBo zpJK6`SK*m@d(!_O04MeT(~JT?0n~3!?f=IM-=z+Gl6|DVf}g_`c%+8@|2FmHqu_J^ z-v`_OuVhcS;fI0xe;ay12XosbCH=peXG^GsE7293c{7sw>|1??rXy>MfMGJVSKYJ( zt?r(Q<5K@h{ckLF^*U;sycxxLBl0zqoHp<-^naUI_Cv1!FT^Wm z4SN49O23fv9!e|e|21%>lV_JE{eK3~Zbj}-BgJa;&JOC!$w{lI|2M(83Dk>R|L;Z5 zUWDxJOZxwmUj4rt%{SaI9@xetZ8;S!SuvYd z|94UQ9;OE0j1JvF3*-%D`u{fS#+59Ab*NYW>+cZy|CN9o`u{2n5$oBuI(^G#w3dHv%KXTejS+4*8i8s0a{~fOX9c;_>|Dz@)WSKiOwP&{f zpM-nwCGSEi-Ki8GXW6{rxBok`2`r~}LUt7ksHy+=WhMRpOQ`gGQUCuZ{xzZh7iOdI zxY?dPPwo7DmR3^#|C$}+KZeZw75ej^kn73W-c0@fMQY|BrxwN9!o2JTJX>=8|0i%b z^#7RbQ%u5X&04d^_)Ulo<3|lXIek&jL$~jvKGwnE!Ss(lO@~u!;Aql6Cm_vz_0LVT zsMjKIx1fJcO8V!_A@$F#U@#M1ddqJ}|GbO(a}|1iKC(H1?~3~8h6?)UE%?3Nikx4H zOuq(wqW<}8(m(en{quC;14;iJ;=BGJdxhS}H%9$)3pKx_e-3dU`sWa}|M3^0f1Y81 z$0v|H?GG2j)93k$eUdNJh%EHak6EPK_Gfo?1PNG^O)jj-)ISTdhYKI!FWR5~gBFwe z=eR7_KjX5{KOaU(F9h zHY>X*E6LA>?4H7e%2R|JIl$ev?w;$vyP zagx!RP1D~|J9juzt>MGr5tz|?)qOsVy#e{jssKgWgr zi}6kK(BHxFudrxq6YyQk0Ma6DT=UZpU@UNG^=;{&J$H+I%!re~aL2NUK~h ztz`tyBd2`yR?7KgF!_)1FvkxZKb8ObhRAJmDwltKMU3U2&-E!7%@Oi142~=G5BkV! zlX7;UGUD0M37;yno()QwBdGyT$f0~Kg@JkdPRa4NJ(bTAeB>SSuT|GsGg8`-4y~&( zvaS3(I_U_mV-oITru;kVIWRb`TatgRYo-eMw^Zd?`PY{32?+|`oy~AZn-gzZ0^!2Mm+}l7f4}qiV=UY6XIO{ zV;nt~f9aIVe{k6vE6*Z^o(BDcIjK3qKgznO#D~|EX&rsH?uQ06S8Hm>zuLkSA^%!r z2j=ficS?_tc`Y=KkjqzPOMRmpil<{-F5>Q;<21ryTF1?NGMM~3nr$v}-+lI+jXH(D z2A(^5-%46JY}p+tRy(;W|N6Xia=4S=gj9w;F#SVFMacg&+GWcBbaDv!cN{xLC!8k~ z@~;f$W6mM}A(dl@F)%3qj(aTz!x^+}wGcP)#Qlg_Xo08tvFI!BSdX)D9ih_V-T|FD zXopQ92kpZ%D#*V(&XweUF?}P)XqA6Qhm0k^k!SW(F`0Vu*el5#ngc)9#*Y40DLmFf7O(y4}1LdS94PF!UuPJD!dI$p@caGtKV1u&<$_gxl-BeCa!J!spRXpsPeB?Q2yoi7^vY`o_Ef= z8$rx@#Ggh?<=+w2{=pG!Jtmsy^LKFAqh7~f1J5U76>5cRUHoZFUz1`f|1-&d8NCkW zU;luRf5*-HhjHW;HF#xVJFqDK#~0;)8NHHR{+E%*D(;pOza;uN2 zm(#P%=xJ$fo(`PK|M8^R%hO%-HBUsoc5-(zcd`?Hn{w+q1Ssc zx#aDi#f(>-Rh0kppmTZMIYaJr z=zKiKQDPnj&XE6eu$XRv_h<9eCnK>GssEP~SNT5|`i`Y%+D!QaC#Wsnj{3@YS;jr@GM*jNIsHglkD_?zssoJQe8FHfh&q{JxlK&}` zGz+Um6D2PoPRRdUVuk$A=DnUIA^*x^-_XtIiSoal{?nPrr?U`uA|oOH3!t2y7OS~m z0N+FYR}*&z(zH0q|CYq*g-QMw_RXBTJ;?b6_|`;k^DOe;KrTo4Yru}H{O=~03;4Sl zI1dBGA-J>+>YPV!conJ7z@}4=*A628=VLhz`M;Iamr!C0Rx$Pe9%_)|7*{5k zUP_Pev-IJQ(uY2b4dCTi)E}h3e=T;scd_r{cafS8lkfL| z{B@LhJh;6L``jI1@cURUUl>IG)o6|Icngxg5lPtqkLLpaDB^BR^1qV07xJ&i(ne%S z`QHXjM?gvES}Olt{4GxMl~~jJqx|ne{#T+Ul>a?Q#W*B1^#5^4#zvl9K)LR8AM$@9 z5Uj!y)=pV_d4GPA|IL&;xcu+OZnd2eiZj9VUhKyA7hYSG|68EMQfw=)MhX{Tr#b>$ z$H?`KT-}LvQT_i0;JX`)n~~vLd*RM6_CVnca7Ow6T$2CykyiPCo?IVF^8ZyvJxu!p zp!gov)@_vfWo#0w3ZE~^|8u1OIDEP-&$jpcGi+Dy!17CbC)-n^ zXSw|U3M=k?@TfUc{@ysNes1cOpUac{T-HB(@=$*6WF+a6TwROx>$kD zxCi+;hQ0CqaC#M1uXeEdFeQGxC_nov$WO*%S=$Rsvoi~`vSrx)?q>n6k3rR^3mw_= zO!=9UKmTvrOyLcDvuWaFX-_;tX(HFf*^e! z=%vs1pwBO<-`20+!G^pX`I0^l!rl7|e~BLXT{n&C7dB?t0DwjMe3QAH&lL6o^CN5} z@`q^PhmjELS4Vb1)|Bne{s!o0WmjQw`^Un$*>?(OXE*ZxWm!GCWiyofMZetp-illt z(VvdruojfAP2=4FQuNKN_s%|$vFp;4{4VdUo0o5V9`B46Pf~&^Ke+`*JA$E}Bez+l z2Rsi*{k10(u;fo8PUTc&C>`{Ai_+rmlG+#qFQiC()u5HaBTvuSV;P5I7e^drywt z5Sgb}C0SDv#oGRu*EtQmk0;R+GFJYsTJFk4*cBpgWn3u?j+$@COISW~8<;TV{200f zbJI5HVH*2*%7!)vL(s-^P)|;an-r@h$hTbnwOeUjQvQ{YT>kAj%6CWFucKbLhLZeu06`~Z+83-I#?$@^`Ja*~ zZtCfjmCL`m=o#5cp346u-aAt$@3T}ZAuO{}U8+Q_l*`(dwP_i=SEiH$sbVbkUM<18 zD7B+*NgE|LX2)tz5Bb+prZrLtQ@U!G|1r>c6gY?cYkAO$>&zEz6J^)^%!*4Mi-^G)2?;4RV_iw*qoGd9R1LRK(+uHOocMa|17AWU!~qO%D*La zgHaby)dv4U(uDl$z1>EeHsoKs#B|y|tsL4D`^x`nXsT7KdKgdZT>0-NkC|XnF8>RF zQ=7>g`V#gf=l79+dp^}eXg59b9i@p80BJrF_%kSE&=#irt8uiI8Ebg*?^;#r1MNh) z{OkYUPR_0>ro_80kMi%V8-4zBeUw0`_@n&0W}sG2DN!!}+U1<{($3i#d)hW!2g%i^ zh9mzoC_^v*wLqu*uK-@xqMAs5G30+C5a{8&8VOrQ%XTbpYm=Xn{4WK<38@9IwPsq9 zN$0<)|L4N#kpEr4u`$X2_KGwqe=&ldQ7-?d1KlS2(6dkpu3UN0v-_| z|EJNfs}25K{!gHfdpfXPk>r03y}GgFn#=zgNN2Qv)?%qTk=|sj@_#yggdM%|zc0!E zh2&6A&*1=6IYQ5VUy}c0l)W2lCV=5tlv11gPXiLas>;7|;@3)_XTM(=SB9DCiC;K% zXA_)O{=+7gA`J1P{-2Iag#0fewPQGXDC_^c6!~Ak)eN34=g8&X_1&fqk!$Id@_z!{ zI)R)ESbsL75tbu0qu}rsu1|&ATRE5H|1|7DdQGh^WirIocq|mk|3y%AEj|BjlyeQV z?|{P-;ehggCOxb9#8dwFgX`7sXEEHbB`E*KoB}P%<^KS^#cpWxiX{JsDf1%w?geC3 z`M;7fx7U(A&^=8a>h-IU&xQ1^pGfk5FBX$=^ibC$LGSD*{}+Sn8F&WO65fn`PyPR7 zQU1Tq-BEJ<27aP@@K9^zxD&6GcfrwXh!^tzEqGm<{#X8=!>-Z|o>ENp6b~QZQkmO$vsgnF(nB;#SQo5P)Cs5x{fm)~6LVn`q@_zxf{!~1H?i@t^ z?@aQ42x;wrw+|rySJVi<@_%np{vSn_p2h-n4Zgwm;9I1>vhx2~IPx}ZN6P;nW0SZV z-qb4pAHah1BQX6ScC`$f%yV2nNKU^l{0DZOPq1a@15jQ0|3%^Nc()7d%GdCf8m|0* z2&n!8>)np*lI$Ce+iWAf}17zxx6SpXJCPw z$-6FWJt05Wg2}01qWm1Jk^ZBIc{xkd@)TC|3D`NWr{oK%gIBg^OUUW-E9i4}_8j)Ny26%hLMDBlFPxrT zkKg-+`2Ee!UX`sXT%1XtD>Ca>OIAz%VdpYxT$v{BN~!&VhP^MAYz!4ZNacz8A}^SSd8r9*cj>_2lfZ9RCj9xZ1Phye0e{F|<|Yscn$KP7p7yqSbqV;?;0{E@CX@Sk56F;S~^c*Xv;{SZW<9;cxHQ8F-GS zX3%v6SFST+2>k7DHUmZAKb5E5>8+#fYq)b{wGJ5Pkh?8?JuGIW7)yc8IdKKF=1#8W z)B0&lsmt--gkJ3+#`)lX2HNqIUi|l<)ei98760Sm#nt4r5en??<-hnJ>&5>f%HIP1 zTbM&+DBDn&$2%FuL1H^{GEZ0TL}N1k7?V^ApV=d z|2*(N3;a(^_@6_(3)B0Xi}>&6yZ(CcKf)N;nf>s;leUrg|2ALem(dd1%NO7!Mfrag zjeUS`a|f+J@&6XzpZCzV++7^2ssq>GP58f-@t_Qy`F2`Vk8+goUjj6)4C4%7@!t$} zR`=q+f+xZM6QSbDG-q`gZSLUz*_8PjzFez-|6yPk|CfOO%VA}2% zue@Poww}?d$-p}yo64xo|IIuC@xQMq|KCUc@8qlgZ;a9H$o6I3+57o6?IrH#QhL1# z4pZt5{0FX1@Sg!CZUf_-f5Lwi_f1ev_&)`1_cHQ#ETtFzxtZ|K&W^)Z`D=_&jm{P` z1Az_V3Ew3DUy}b9$p2@wd#1tVSKuq1=l?}&UwQt&O8K9W<@x8|iTJ*xEa5`=T>_)x zPiW*k7xjZ_^H93VpY%V+S4DlMy~*?*q2pu3p?`|L_hCOQ*~--}rdCI)H>(AEZGM6B zZ<<^8~&DO zY<!Bb@Om6NeehrVTC{0Qt#@hgzq*aKod4lL=J(UDyB=x7 z;r}>vq`qnPk%Ip%#WuiD80gVv`(iTsDEO~_x6L8{tJ{#Im@;VF$+4nnUxbHxEf#jy ziVXfsb!9$yVJijyfuTT8?{fazHfkZSSh-Fsq*l-B{I^XL{C6EB+a``ijE9DjA?ts28<6u;jOD!j(WKV89sHk+R<532+S@vDKIkgww}S7X z{GSgcyKCaV>pcYjwPbaXW-7mHIEKUjSO-r|+P)e~T2~~9+A$RU{PyaltLAczl{U^= z_T^t~{CE9>deY40XaH*0b(xyd&mo6u!Bt4KhGfvKov&vj+*_Uazm{CJ&JP{>^8Yy6 z7E8%tOXB}rS}fJV3@idC6KO}0|L0KZaRogs<-c!+4mtlfC;qR6|ND#l--1We2}395 ztv-3d|MO^P9i;U$o>u53@c$C%d2ZG8t`4QQ<}_kER%u^G{!iymO;jz|)*p}5XHab% zd~gPI&i`5T1*(OWlq3JwCjKv@oploQn@U@HJ#EUB)soZF&G~$O$WpM|8^-|A$h*hTnt1^-_IRa~E-I{#mat?^`R7Z2k1cO}-4C!qV=Xu}?c|92$6 ztD!;2`TqzWHu|Kkpxqhu|9$ZP$)OYT_A6LQg8zRA|NlJk|69xx4*q|$YWnqPnMtW# zx-{{BO)vj#L09Mhd9*i=FYwF{{GXQLnU?Lzs%5aAUO~|Ry5zNZQyKlwMy{%b^RUDP{qF#ayNdL`9;vR4{0spVzp8DewJ{fVLR*SA3*hrYq~Sm5uTJ>f}F9>bYg;_ukAZLNX$YY%JT z3*cz+VEEhLv8Rw*`^s~d{`y|n`qTz#uc~jbjbc05`C8)N9|Qg1U2ie)ch$$f!LNlq z9$VYuANQp=3sU<<{s;d3HK_RO6}%+%_2&$NzwMaCXi@Q>MLV#6DB-U?vVRLZR@b%l zCH@mD;6D@mXP|jU4){XP;(Jifch^}*bwD|*U-9d>*MEBoUtaO|zC4_R)}F*yYz6o` z7P_naCD*%(_+QS~@*wu6{`}v{H@qF4BL4Wx4#2+^=v@6z{@XtaD_p4%SLCrJ-(Be9 zZ{mRWt~t4iHiolC#Q&61(sVV8(Y$(KxP%-wfqz)RN|D4@d(IUJ|MLdm|3t$7o+AFQ z8-V{4;QwmIO>+EiDrKFnK1SJZEc^vlo;UMtf5!m)R}}G|4;Plgr-AsNO{+2RKZ`F) zfBf#|8*wN2--9LZI@*U1_A5W|{~rF>f&bU~y%+y~@5TS81Mt5jlm8nS={M(_P_Q>z^t9V|D9nT|f{w_~b$}vwJZ}PnRpCcFJ zmO?2Hul(x8*%lYUeDGe#aezB3W01XbxOhs-B^gWsyKBltbd zzg&JHqFhsIH_!qU`5Vu}U>swHCCRgKeHK?f5F=`qG(`zO3;T4bMSS7*8KKu?r9C81D>wptDqkHd=>5 z7v+ja%z{>yq^Oh@>;7Lk9`}Zzp4Q*swRy!Tml#V~SBKQj=p0C4*XAPh%AIW);SCS$ z;HNo?mocQZ80b+f#4)lbzEVHhM^Za57)Za+1>#^np%IKFh93TgtO$*9#Mo#4g{(=3 z{P1b$frwYCJ*F|Y{9G!-=N|cQx-9-E`SD&kiQMFZaL6CuZV2ms0lIys))>CblQI;}mur(j{ z)X)>=7WP)_Pf)vD|M@gH8yt;%l#WXDvkhr)M4qTwlp4oFy|zvZwWF<$^9L1dVOtAb zx!O7$WB$?ak-pkvltXKNOA#9PmT*+U9D)a8;ab|(sG;oNpZ@#SVgF+6B=*)- zPn7FF=hK$-pX*+`ertI4m+QYVlqluJGS@>nXM>8o?hV$?T>nWAYw9@CsV`i+AlH9U zTctzHP?l4A;5vUj^q;G6$DDVi#TqOPedg$dG26LwRdDB`#JIL2;nC-*#9uAbef6LI z+oAv5$v5<0%n@+butAUN(0|?wZ{X8Xv%57SQ{bQLluNae{&UTTDPXO4@>JfsV~DFLjN_@2@9wM}+=u>~#B;x^ddK@Fd>!=A zaMjq7{&SUVrOMSK+)cf@{tJ&4b(b2%S`ml8@g-NHqeh0F3EiV?JHnD5*666Yp+9^s z?|f!$3oQ_NtHVO0hX%`~u$+v-Vfv`MCH*Idluh56n=zEC{OcQhH%Gq^>K&!nF&o<$ z_JXbN+9*Qb_-&7`U*r{aR=r>zmFbs{BG^|f>A%n!;p3v$X{_Ghy4tSA;8=gI|Exg) zi!^dnB31-(rh*#C@0$Fu9N|^+tXV?j-WS#n{c$SQkEy&-|LFy9EerkUObdPGV;vYZ zg8PQ(7w^m(tp~aOQ?eZS(DP?3aV8?6)~}cq;(o>M;USF5t2sz*R~Da$M7l$V@Jazg z{HDv|k8=)`9=-DQZi)7vHMBmZRS!6Rr1oReWqO&7(|f zdpq$BCH=QD-D`Ow5INXcAMxC)HxUN7aYk-UVM)e9@q&pD1txH4;9jBldz;$l5wte#g)1AE3!U1UhS?!wx~^Ih~IQs{Fw#kTz4qff0N;ZGULt~1-N6H`CPkKjJs5X z{?qnma0Za_?#>%+)C~3C+!V*LYW1J~a*m(P;;w^|gt;Nr7}ucD3Z}iz*<6N!@U5qA zb(6XkiEs~``P|J!%I09-D(Sza;JK8yuJ0kNt&}hmE6{A}%6uSP%v1N~UW&x2|Ma69 zMGm?CTRC z6XUkivD(!EzdnT9fN)8oajyS1l9M%iF8sFr=bderzWUG9S*no>$wmD)w<3Hq@V{CG zuI{*F&2x{3d0gv5U($c8iKYHK1B+JZzf(xHm7FtD%)smJRAO{9W5NBJ)qiWrLH&0& z&*m}0xBy7he`oUSR4C_uJ^xkxcN%#`JD{5WJDYfpN9X$QeC|v7?_8{<23OiI6t)AO zHL#@rb^vRo;Ho7jK(m)HT9@m;LrMP~BnS7MXyVOc=x_-mtUHSO?{ci98+ejo!Lo{iTXZG)^Q-Obwa|ag zo7G#l4cMk}v;nhomE4y`d$KD&S!-e^9c656il^^vv^PWl>4B>Lv$df9(;6T9bB!RT zUKHa*oE?`tM|Fp}VKJ4pk$yKG%OMDQQ81PW`u)oYumR z(0_}Na`m77EbFODCy_@zd8q%Kzq6h@cY#{W-3&&Iw}NS3{dYQeZlxxj3CGocyDIYc zdSdRw%CG*rnEH4bkf{GIMkj5D4yOS1F5apCPN6ipv5(l7B2VhSYe;cCkhJsUL?q7r zO-?WBzpIeR6XE;m$l7$qGS4H2^T^#5q^?0yuP47fPRn)SVCjECAGb=7n`tL!;)o+IyGpVK5<2n2&@Lq_A z>rS5bK;6)P*OKpJq&<-pS59Z1$_J3XhZ&i;6byE79))l49^g5dG(oO79#C;Pr z`*x^*E71BizO^EJw*OuObxQ5O+rZM=;cDeK@N3&S^q(ub7)tHG2e@-ZrO+|2@g`#~H!6g>$a|Ty6ed?gtNdL$6PR-T%OgSN(T8BQrmOcCW>k;{j%vox{6d z!vD~J&q0?b$p3QUg#P(hPo-`z?7J;scqcYy6z$tl-=k3i4ALI1q~FP>nQ zN`X0S->*nNzov_jn~_j_Ioz2I1RIn7b3cJLB&m@nCH=QK)oS-baCE8($yQHJBCah9 z*P>gB#tZ#7tEm5GL2-S4*22v>#B4z?yVuNSXs`bBd1$`)EvKZrwzNPc&-&lH$B_EZ zdbI?qolD-^fl>W;JdmsZPK9=^O}8EB)qmSk`)?g|a&3NGwB>8M`wEcGg9i#qxBem*Xg)ZQ`X$bxI z7sUG(K1b@mZzTQq05pFz>Aw#p{r58JiTdv$W`8NicP0JzO=$fNq~QhTQ9Z-Fuh4(r zVTPpo?|yhZiWREVe`<)!Ddh{SS#=7>%;YI`4eJU0MX&yQxFY?&jkMRX4$_yY6OS<_ z`YBTV06p>?A4B!u_Y3c4HeTqzuP6QYb-aGQgilYo{(CQQ_SJuXjgQt((0})#Zwjnd zv=5kH0Ph#@=W=G2`tPeybtKon7()Ne&rWAo0QKLGkdM%R-+{ZQFb7~+Hkr9>W3pWT zjbd)VKjB@Y{`*%X>Tltp`fq;r&&(bB5A@%K`1hZYMmE<1(~Rs{W{hRoD_PlT1=zkC z>X!81GS)!96?zP<|6Wf0y_R?4dnkZI285w^?1|01KsudRDUmL-sZdE_jS~$ZSZM4UUzo@;iIYk zz7@Ex#Cxg@+}}$raqqDkq2FO-`Sq#(zK&>sn@jT7SE_Tg1BZQ?sbQ zOS7oIpGft$9%(ooZN4=7X<=K|1$=ElPzk<&?d9*^C;t8w)P5HJzN-&^-$woYA^d%H z;_pw8!k^$<_)PKw_(9_DXA^(_Iq~;iYSkB^?T_%_noOPl5muoHc%Nb0$a4O6 zXWQ_k8(%mtyMuB6gW30>>$%WX{{9L4y#gw($o?_$cS-h9^7)6txa^edDCKsu=A8UJ zm{p=5{l>8&XvRoIS4aHn15#ROY9Ve9v*wxB&S zM&z`jYCm=?D5zCi4vu9DulDW{T#roGwWYNc6;S8nPhrp2UQ=rj;~3M`Y8Nwbf~vLV zkjD!@0O6^fe%kM2#LF=;bBIyAJkM%p?RJjB$^}QkgZ{PSZ(1#7+NNTjtrXC5R$FlF zS}VGvd@;f<|Arc`?w_w5bdr)OS9lTBn@-Eev5r=*+-JDf&_+8;8~6zN0y+O3 z4XHIOqmMs^)=lt#KDkV#A2YAk9qM= z>!+2T!dg{blI~i#jJ8;<;WBz4^8Z@;6fchdJ@Ef7THE_+u?GKN|6k(& zgYcg=X^kQH|9V>8k71X(C(Uku%P{$WHNAN2f6o684uk(+r?2}s{69ud>2~_qpNE^D z=C{_ck~Y5lzdzOg%jn^4Wfpnu{QqK+|6ijgCI3G*O#c6{@Z%!?zYq7`iOoy>uidS- zu&(fbHves@mwGPIe+kOvPa}rU@_tR8#&iD^rDu8Uh*8QVB^t($DQ%CLpMQDp!k$v8 zwEWtPBbHaWAF@xpGj;yV_jzu4>NrQPzONqa@#H-(q4YjVutgp|fl*Gx3rym=9QsIW z56IL3S3nzi+CwVkZS3D{$YB*1%drg`&%);}#+w4SxYlDNkDKFTUn;0kJ9N=&v^-0+ zG<#3sQxp&cRZ2Mrf1~X1vkd;)d$9Kz&&Fbj)N%H^Q3_xc|CXL&xaHP~a;1Is>a^knr?%klK7eF6K} z#)~*Yn?sUg7Afp~8Z-Lv{tC6v@)E)a&Zo5nOBE~oS7I!0?BNDX;%^yZVX4Lzd*gVo zm!s(-O~f^|Jse|44Y&6ex#+DVHHO3CTJaEaeQ{%6m>x!!AN_CNg!jBO_L(?~hjMM(%UKOs6GecspnM4wi--$gjkD;IO)+CU#hSu$X$cDYE{)EG;r1G z5Le-OReSw#HGM~B%u`=Z`@*^Y6Jk9ALf05i|1RN@L*Xx`{)?I^jY9uvhfqGX1G%c4 zoRJE8Ybk@quQh}}vR>#RarTW{$u*=fyysoDL=QK8J)KvoA6)3a@LdmYZE3EJ%Q>ZW z=~sJItU0UAM=fg2*DLKeum3Dn`O%M5Z)^R^LjUO(7uF~JwZ+qUqwbxiXPx^XsuR4D zb`v@4qgQLtw^|u@^}Fz&)f-#iPrYcRX?uc0xsy7f|LlLX@lJ`G$W=-I317ZKov^qM zqu#kf?aJq|XP|Yi)}YU18)?;lT0-5=%(aL^|9KVq&mH}=c1$2v`1d-;R^1~W*5q>i zXC9+~CVb)DqtG?4U6;qFwfC>alY>}xQgZBtXRTEKxu=|me(p-6o;zBQq_}$-Mw>~W zAM46^Vwk1{2qt6S3e6WQ$7{cIr|?dGopIoGtwH_gjs~Is+$&S>CH=2*{Wl3%VlIR> z!dCotv{~xy-wL$KhThhp|Kz26ptrr>XpjnYNxx&Cvmx;3+0|2YG?6D)&Tx&E6;3C8Ro zw^~C3cAZ&35&F-4xMuLA3r@JRWl8^a5Nj+?W`oJhKKf5M+Ebcb|4HrHa6TW74jP6v~j^{HAOpl{|Ew zi~CX5lani4F65l+zv)1!znuDSJ~`AHgs7Vm79mr561qy}Bq-5NIn#kvPjmI3Uiq$; z?!J^QKsg`0)PHlJ(E?&L5>x%>J^-V6whVbx(=De?Sfi|I`YbO?PixnIi?LAW`fmZy z*}e$XolgUN>H-{9% z(SKc}SVp;eF3BO+s$793Zyc1E19bB!%T?#y$8#n1CiI{Fd|kv<|INZb!PUQ7h`*G- z1>CRWo&Kb`{#(bh7JPxGQr03M9*+KVUV#$Pjb+Z=E7gCS6U?35FM?td$h{5dlz!K7 zT~1lE;a#r(mV%F-(AHD^s>cv-1{_uYt%fJ9*jty8?|Och!XIZ8)EZX9&28jT(tpb+ zdlfKG1YY&ual#wQkG4WGq`LazUIfw}t6wT`y@KkU5+m=#s_?p>kjKHW4;)8uH8Gc-BFA!h_6 z8#qWt#1;@yQI1(r5!5lF9usCnMMX@I%QT_S&gd?b^FeEtDDG6VFDCH^3V<-SIcFfArH^4N}>tE53Ke@2WCv50usb zq+k?sLHpMisqBb%aQK#;v45kW;eX!#^+hV0V{W1d@1T!By2c~DT~L;^b@Zqi*}sV> zExwzdjadlVzezZ5hP2hdp6UPfN9aCPtzNu2)C*B6o#{Nx3 zuBy6>K}>BC^Bi0Y6A)7#QalPVjYO$TL|Ug|ekBLBHV$VGMb2se=m~WO^wa+F{rp)d zk3MK$#{TuimcA7SBE)cvh{ut?$o`GP8)7^=u&T*J+gOM?8-oNP&-5Lm)|NGi84M2x@iCSc4yU=rntf)`*#dxH>yF_*uOa1 zkFkG~kOE`><{{0~@LPl$sHZafw-oP+(f+YE2O<|^aP7}QUTFW068pCr^H;Qg%RomW z%!;Zd4xu9ZcL++p5n5n<`dE~M zv46)q39u%3M{YdkqdK5H%?4|TcZ^R)3l7jiY5!*7Ewm)wDr=9cd*EZx%}0^n zGW&P=AGCklQ6g>7_Sz!vUxoJXZlrl9ti)ZoN^it<*bC)xGfM66m<^tW_gIbn+k}$# z&>r6_wSRxZ`?K%C{#}Xhv`6;u6y%Ba?>yv!_U|Et`MApEcQ@KD`+xj>LYe*h2CeBr zw3KskJ$#M0PR6_Bw10PChTGV`&+#5F?cepK_K#oQ`Uv*#W2E|Z*uVSH7GFV*W5~f) z{NjQ3?{ew?{b~P9|L;%x=b$bBpKbp*j}ZN1KfwIs<>ksX#=mCI-ZE6x7S5q?q>bUZ z<-#*&-)y6Off6=Khmm6(6)l|6i2gC2Xy%psl;XU&(am`X>gKVT0pxzPVz-KmNj+oZ z90nJrlCvAsSvG%cQoyuvPNAa3%=Iz`hAS%{j;@+HZZrGK**ud^>WKbvpZb}LeJ>pM zBIkUSnOkGZIe*1Cc*dlgvGXi*#aTF0YG%%oF;uifWzQ{V205b6xT%qIoSezwY>kE=Gi+BlZ|M`i>Wn)3#n z(PFxoALhi2-g5qcWodH6kt_CpD^9;DQ|f1Wm;>W8+O!JB#J-eyFWaP*vx^*W=lluF z-OSTsXP-+JdPC8yHdDxjWx+3Uab%ubu6&kY+BrMQnK`bU)i5Phaes~_&$km8E7QvS zur4_I&KAY?LeJEutT;-{v187+u|C)ym>E1L&X`jsD09VqlweR z&aW=8Y&fIB7%EOb>(R`YG39)M=In}@PcXCDZ0`)g89g&=VP-`+dcu)-jyG0(eR1rM z`Q?`>_=O7do;GJa&3B17y3W*^_Rrk0Mp<_J?Y22)ZB(?dy^wR>f-{5s{g3%x1?RHN z+!^cEw11Y4`BDaFOPO2KrmFtFI7c)&7RBB)zj?v=2+pLj{c}u(vz}~KW$m9cczmaQ z-wVIo&sJ~docTRlwtsrH;v5KPBl$&H&c(4rI9I~RT;w13W~RM!5PDvpzJ-jZL}$&=?)e#4k&__ja4QN{Mp-@($C7r*hr zmQ{KC=QjeHAf|eVi(@17tIYP_7-#C^A3YoK9dnNJ)29XJu-Te88_D)xPjoYH`(8}@ z=e#I=Tyd_2Z_Bg&)8kkZ#K$+*`3rF~|6GK9)=OPzYlgUa%o)3imWD_Vzpv90apq&B z&$Rz$s0CA({PqdwF<3(U5)b`>1xN#btI8QiwtxPrxax~({{d3g7O`-&t2+Aj{3b{( zJS{Xu+-(1Bv5ioQoITxt`{$Pq=)0o@BwFE#nl;!_+CRSv(gx4p)$x?X-xk>IpEIRx zA;Y<`8j!DOVJ-ud2EA9Y{d1HdhUXT3r-|Q&X%Bt$;oA)P;Fnd5{cnN%MMXVh*jJn!<0EFBRAziGtTkEVFyia{sKsb!_@zaz$aS|KgP z$ZvN@(buvIjT}GDMqb$ddqW#XW!vCc(zO4M(k|LV=l<+JzhlxLG1o)PZ2zrs)EavF z;rYBi;$r(RMoh&RJ8FP&7qE&} z_Wn2;iZwtTG;rd`5!*ks2=NDFHK$B_zgHbZokapHhTZ|lV%$PGR6)pS~Kl57~ zaSq0KkZJ#iK%yQ-H`xCBW0bHSVv5>-AJpwsto@;XI5cG=1^m7KzL%+C`#%`lei&C8 zg>>>OKpfFM0HZ3L>sW|!ww4&X?TNgZ_CH11|5W5;3<$rgRng)h)$^tO^Vc17Fv1bF z|GA~@e++7IMcDoi!${3ojMDXm6x+o-Y5(zxqDLDr?SCp-+5~C;Yaqi}f)Xj?VbcC* zL3dZw4Sk~UDH4c+_5Xq-PZ*PeQqjMve8u_>^h?>(E|Hr2S6~ z+y6>w|Hopis4r5n1Y=}zj0;VxF#Ys5-2^E=A1Pdmv7DLvZ2t=}LNplP?PmL5fLOa> zq?ql0p0xkdk*BIJ^N`ydq$?Y9Ol1Ghm-c@~h0!m8 z%)uy^>S%#yNc-Q2_J0S?ZN}Iy+yCt-=WVL}^A|VuG2XQv<4QMRRBfi@y|L;P}H-EPO|D)SKM<4jlJa3k5xmT5i;mn8;W8lANl!tqjFMP5z`lIn7 zj$-j_RivZ%%{Y;Hhu`FZPrZz(vW4Nw($6uYDE)j6t$gA50N->pPx592j^j7x*}igl zj<7KQCLJ6V&aoc`w^MfwBL^CvHAX^69MVB}o0|onMZ%FgEkfU*-DEI3YDs zAK!Fkia6F*@iVO*D@SpdYCgv>71V3SzWC%@`C>-DI6}ks(M|cA?``v);>s6}YjC`Q z?@yZXD?SzS8IflyU)ajoL!dU+9b+J~`iyWc~B~;mQ|N|9rQb z>1N-SqaqyT;B#D67p9fF<*x z4}7OJs(<#ZD_>0g*AMHTZ_jd!g5OoHTK%)U=;fxdNOI)Hcmn17vQ?{petFx}KRt=^ z9a%n0G{)Jg)L#xln)>Jav#fvqil6o0Y(Gy;W#z*9=dbSh6#~9P$M-V%b{l_9UvaOh zOy2C7`sed<6O;h!pW_Q{ejjWf$1SD)`Q*yC2=gFU6D7#{XP>b0B@a*We3P#e`r>^5 zx)4X^`frE+ZRJaVlFC7!tOd%u72;@%bpO%%?+V#IQvU}arXKQ?(-2QqRj>c{(%QPA z*J2sZ6Gm;sG)P80;@F#11@Qw>OT~D;8D`c0aGc{aWL4hsVEyy0r$g{;XzG75>VR*= z%&Kzz50Ltwgk1CMlTDmB+TUQ52EQ#=*)kTbba7b!{c+7K#akFF(DJ9C=RLAAVQ?3g zb_UwY7?c3(eR@)i6c6hE{-1)(X?WH-qRRDuKfbcI7|&z8{`uX2rFbfO7jFeU3g31zuxriqvxe41hU>vLD9u@fV49`WdI`V{r~NDyuSi_O|#NB=%tW1t&8nSC#_K*0G1n zIYf?Qa~_oa(Q2the|S^0hb8$u$=Kl_&T zkstngDAK@rHEL%5IZwo2R@w3UkZ6RSL@ltEVg75EN+TlaCEEGtuVJFt>7#+qGOfb= z^V{iph^LJ63-a_JV&^~l+C5{ZcVm95$n#e&W%7kM(_8Y-uhrK__?D^#n*1A& z6Lm4F%wLGGUlYZ^{P)6$T0Z&!jX(y$^4sx8`R90aOWc?F4fj5!(oA6;tQF^f1oGPl z_Y_nAQzf-_{wIa`AB9>NhEStX789)aP5uYq{@xX7I}rU8o&Pb2aYdN_k>GPNl4xIn z4e{n@b=+4*qxD7kFH!lQg0Zrd&>7{w1S8B*>9GCJMY$|P86ATBufRC;Q5ZKZ<0k)y zA;$Sw+5VSXu{#*qJskJMn~<|35Et{m5qG>Y`EAJmJm}wwRPc+@qp^RR#m~p6cWvBZ zwMB|7PU>RF(fLF!pTMzsdjeVg4V&c;X9| z{{OG@AC(lhWTc(P4rpiZ{_?C?s^S|-}UTe%LnHAVf|Ap=L;D}<>k-ckJrULif_O0S&_da=Li`` z>iD;^g?$$DdujFnO#O45iNA>Vk+#Yf_ILQ}KZfO3DtQ;;_X=1m4G>3V3*W}!J49?Z zOo^#~zQ0f?aaC4-^ft%esImSVBL}Si`X~+7KTD!Ac~k$55DVYFVg2*BVC+Hht)9vk zek*{#^$qZs-^ygmr5_CXbgEkYw+ZW?Ivf2j)_(`&xC1n|mHKZjdsVA{_PAQ%{>e7i z2_<;|O0gsI(jK|@5ocu!eeX0zpNjS09rfQ7_if^c)PE~%P5lSx@$rp} z15mG()n7flzt9_FYCd`|jgbQSMK|@|5h{@bF&Im15)wKoW5!Jcpv#K`xTs`4v9 zzWu^qtg!xvmDYbZjP3N5@~Eu*`aydqNhj-nSXlr4u-^;)$}W|OBelIS4#V%i&yZU0 zgEOrEgRt$4wX((3|AELwE%X4#Nc|s-yv&yRpHrDQN~x^=7oq;Apr2^!eVF7&hK(VYkorFm*FWojJk;#p{zvtHBI^G{%={mY9I*Zq z$l1Cmk^9-!#v22NVU%V`SpU6Rj%{V$F2P0Uu9w=c#U1E&5@faixbn1ko_zia=( zpt}B#g4}aq{Xc@=8Ko+f?*$3|Zf+G)u>~cu3hUES|69-&Plx>e>u)1|f3yv`y|1+X zug3NNSE>ISt5E+p;)>gf>;G4bhq3-y9L|luzeou)!2U#>owSa3G21ke;Mob*nb7v*RbA*{hP48 z1=}~V&cwO~>B69El7`_vtRG_k(2#L^N_fn?Fdq!x3~?~8JZ7F6h2f`QiveJX>qP7$ z9OHsB6B8CXlJjwnadOL*=T0`~ME3~@|1QpjdXm$z&vlkrMK9tL*^?j#{fy5^Vq0k$ zBi#Qhi}cD-f!wkl(c{KnJU96`=Xrd1b#Y|&JRgq-WJR^>)@#tPQR5~}n;j6eXxX}L zyD)K&K=?1n&*NAx#{QGoK85u%tj}Q0$GKWq-$b@i=FX)!R~PGW$g?g+;vC9Q%9H2E zW90w>>tP30v{h-F40AlfvhAYY*=89gITkBrD9d_ay;4tD&j?k;#g&3Vc_9CImS?V6 zM!x5}Sab7h6x1xN#V)#9lJ`N^`Ox_g)-?7X!*&B!=HUWtnYIgY{!XOrF09BenVj#3 z{UKl|8z}>p)5TzH<19Cp*;;IQy}yF>SnMNAaw_)!;3Bn+tTBIBkU8Ye^|NDn`=7;4 z?nW9O#rg(BAHudL)+ex{jdMsUd2`kF_n%xQ2C4D=tgLEClNC6*18IH`>)FWnCah?s zQidoyDL0f2%SxReV@1GSG;1tq%5J#_!sH9!uOp5JuzlR*Me?*6`^?+Ew(PFki|1u! zWoPH)_~qkw?nT;mA+4;}^ROS)d03}Rw-dt})$wYCIVKE`cCfF7*DI>fmyB`HWPi&` z(EBP@)SHtI^K<1swo!dDzvSU@`KX~>v{%EDo$Xbo|9*r&7c258Z5{1cu8r{6YRjl0 zTy$B#)5!1-;~d)>)5Vo-FxoGx3opyd&dK_{{O!=Y4f?lZdndN1V!HtHr(ypL>>q~x zpRg{2j=fmF$Np{DZo~EtY=>YQ$95RDESs~iwuS6@*!BqJd9E||$-x+Z#N|Gn#(Bp7 zRLB{YE99w_@fcuN~}yvm>;G`@&jE=kHpXPjY1f7 zjYa=RY$t>(&Q*0m8>AgU#B%A1QNbmQ+lGgMBQ9*6zWFbMkqoX_$3F7ZXjkv^u0@$W<4P9M|5{D=<37sVCjr&Qib57Q@Uq<-j=wFb`B#Jayl z>I3!S;UBLhG4rew+{3ecR7MsSFN;^M=gHLztA+o57XDWd@lnuU0=5#{RoE`Y+5!7) z&&#pR3y;TQpDT{lxhn8|g%=%Re5L!=ap}1V^x3?0e?RFf4YQB*k|~~zW2};2wCZHI z@?3=ruNS!q@gA2|EhoELb}T15mYbWCo0o^XaDMgbHEQJN7ZlVeD6CntX02LsTbcKm{L{ED?Xj@eIT+j$h{=U^R)ecHH*DN| z{{qQR!M{Y@MG*KF+wX8p8`>D@_yPMrVxN8R04wa9*hSb3=^LXzl5B;Q_rOhHZLpt< z{Q|7Cw`gy2A3|SFj%lBe7rYAN;FS(zPwzq)=J&5yH{#qg*wTiq$NDUeU&5Bx=o?u7 zj^l0EuE7@lN%pgxG`6(2k7LVg9INy>|B3Amtnc9*;=-%+PV#+h|FnYS%inXj$b(oV5_XJU&o6+4Q3 z46pE$cBVW}!In0F=TQgA#n@JT$&!vW!_(G;Y3DV>du-WYUzA~-!;-9tHt`j9_F(_t zSkcdS>f>Akti0EqgBABL=@;|9T?d@$n~(G8H}D=V{Z-g7c{ZB|2D>eN$G36r9jt5* zcVb09kmV$OwM(#NSy7I8W?3!5`aiXV+2mcZS~hGzevNvK_7(R{IC&w`a1pi_V`ckA zo+Q0vuzxf5X`7MvsQx7XU>Hs`_j%Uq$yiUr@#)x}ge~$VWyH3Rd?mYJTa5L8ZSf$6 zyG<5uJ7p1s`6@fHuf5Np`*W;(-l>i{Wk38Oth=xx@6rcn`%GZ}Rjj+Q{|dG&kIEMp zcftKGVly@&$PI||I&7mdi{lt}1Jm(l%AMzFXJ{Wzz;+(C`&~qFrTRJMBJFn=w%rgR zuQhwiYXeLzyu)Lab06aGCs?bY?6R?*f_=*L!#WV_6vW5--oaRxVZ}8o_wMJh-3)FP z6h0R7*PIFemR@7Hf5@|UV{BVtZHBcu;$T{#%ic==?HHUp49qM@E$(~Kk-eooN7-V? z&%}d3$tGB9;J9wtR&++kxh8zFEJ8$&&P`M%z|oTY2zz|KVp*JqmF2?nxesyg#5xuG z)39aTqYX$}P$&4{ndytafGygA*g9N?Ty#%%ABARunZLMCB~#dCSs`CiZmqB%mYbAa z9Oswf9P05y7>f(9)DIeZerN)|Ki>{ANTB;uuVgp@o0tkuqOUa z!8#Ldb0pR&xR&@)#hJ;2k>g?ITDwHauB|*?;AcO`HxdzQ>XGc0p2otmZF)=Bv% z=iu-SM+m`l=t0+%mZg%(`x3e!Y@+NOd(tD0LbQbxC-bZHFX{4MBpPlRFHB)97o9vA zM3Nqz7t-;`33wLihks*|gHT&=(w2-T$D$;7Wt3*KG}6wn)Qyu(P$$jtuY>$;p6r-B zKxz}=QBHPe9+R`EJGj}vQ$*>?b5f%W4Vx`jj?4Rx3q@{rjaXK8tbVNqdEEvKjt^%# zDqKWB)KU^h`Chh{RgjmH@8x6{J?P4nO`$6C$}iKR#8FCx(ypN zY*4pWy`ucuMGfn9>fE)sdyk&IdiUwuum8Y7Lxv6uH8Ml^@B0P$u3yd1sa{wkC$})G zPMumsvFdfI*RNN%c3!=@^;))R+pc|wj=YQMg#`z5neS$0~!Jt5=`B-)uK8kA3r6wTg=B)M;`6?sNHt91W!fl!exqV;8V+e752< zRZea!Czh9setq@a>iPM&yBE}`QL|=2L1AId!lGKWYSpfd*y`4C&a^@&zUH=Pq8jV(y})%NMTddiaXT zE03B#d4AUwD<_PYJbZ3+Ja^dWZgc0fUNCoR>s51y&Y0D`%Y1x`bNIX!D~?(n%wM^1 z-s**c({kyG`OA-4urL_7YW0GpD^_<|G8peqmY!UC!LmPQlXh zrQ$e25X_x>WcOaZmj=fjd1P@X{_Q4z5wAJKPPYL;UZvJY^iotw5J455lfp1ID&+)v93e%A<}c365R5dP&eN z7(Qtg(?I=J(j_^Af_721+6Qe)>wxUw)(Z|rs>;c+@B<^qGVEZ>k^N4tEDMZO>r<>k zIcWKvzDndIh13@5i_&R|$`GB-@LaIysFeYmWUzElai?X2iU%wm*m}W$r5!tVTGnw; zcWGTt6jruYfkN%UOAkd-OXij(5UO#qv>YQ@Havu!dnDW8-1%!(FDzNwcP{>P>)ph~j$dkysmR_z)45yn+X^&uI?5Th0%tEuEoIUuqMFP(if{c`!Jsywn0M2)!o z^~c1Pr9-zvJ0lfUc8{pCqx4n9_OM|@;mg%&h1H_W$nWH>JnT>2s!~h8)u1XAR&8>> z=`UA?=BkX^q@}kii7wX`E%~a}oisvAu9*9Or0xAKzul@VZ?!#3e^t{hJq}CGs;A0q z-@ZE$J)_22*8cw3wY=|Wdxg>NoA%x>?XzFncfYh>NLf7TqU6cFCN9j$af_#+Pp$d3u)mOlyI;^N1qgt$pNA*|{k7}|a zURsy?PG9#*>alxiJysxJN%;-z9u;5(@|Bcd_e#pIdnM)9y^`|lUP<|NucZ8Xl$M{{ z*dKu5KN;GZy#A-XDK@&~PkT8${w20gW83zgpZ0!=?Yw{ew3kDP@Am(BZ#!%+9{BU# zG1vwhf8M(U+fCTwH3M1dn2qBeKh<&97P^h|b7Gs^oI;-GaNAkX)gcVS&A!8%p;m^! z>7<|bZfC%P!chec#?`ETY%J*vX*8fik5(;snqfv@ZHhGa?}?qE1%+pL!)s*wy?R2m z@C7*CXGg{SH1H{({8bV`qe=dKPz@H`XX9@gS0{@qnKu%l=Ad_vjQE7y? zWhdI^hhRxH6Asf}vb3bBqE{-ahrB_!<@BAsUt@R9zMK(&~Egk>FtA_UHW$E6?8A|)~mQT z`pWI5E?f|dnYY@U@7$wbd;F*h6SR^lQ?#AKhAEx1-=`MGCVbPyQ4?A`ATFWyAHM&K zQTS_)GU283CX)J(iGOA<{ydsXvq$5ymCl^(=|3iX*WOY1Hy(>ifQsU8h?HkZh?x5i zOj@}fn*6}&m_*)3#=XDbdhuHIMR?!MZimL|d)4|*LkwBfFi`FIv1+w33GZFRV8wGK zSgZ|#c^5&4*X?MY@pAHzNbj?r_|xN5p2^BdkH99D^8hz)c2`Cmt5$%hFgJHE<<}ra z|FsPa9m~21F9LWEBAr?1PQ)3n4yF&Y&f_lP*w_(QZ7e&s8Hd@i5AZjKyWTj=h*vBA z7Q3-g*nKnm`_-uD+@F!K>>ozqw39m;o9tiy#vr+uB9qy_a=$RQ9?B*AH|{sc{jMAK z_i{hT8wP8G50&tsUETtiqHI?Viu0ED!GR|See(_~#(^&f@x0lXe$1{W2V?Rc8;OH# zIhdTsALL}`$ib|<34?Kv>)wVWCh}e>!a;TSE*vb$<4bwjHC(2+B(EomD7%&%tj>FQ z3=V3$J3-dweT1USuJ5wMlX;y{pV1Ht&rK7w}U0s zOVXCkdk?3w`?xPc&l67dTT!LiSH$kXv}J?rYnaL0-zLhG?sOK! zjm#~6?i@P-=dxq0#C%pNlU)Os5|->3t5eRt8=b|cWnww^vLIrg<6O>K3HLpBr^zl} zeR6UZVYgr$3g6BBeVcc;{1qW;&H-X5fAc#h)x>jQE|cSLe)FWl`+GsGIs^HeQ|k*4 zLSu4^{w9Z+lWHwmfHy!t!I8IlOyLcvc(?H$DEBrmDIAKLcbj}9M~T8$c+~V~Ihs`q z-x=w}qgU{ljYB|Q2 z+hU*ML_URojn3kiz z|Bm@Td7y;Ms~473eH<2EKLg~{8A1vbIhy435+U^z;V*h}&fFlRiA_ZB)i^JDYdD2N z(86*y?2wQxqLAm~u&@Tnxi1PSR^(BVjh_k`Y!iw7SDcsF@lB)cH4*ZnqHN}Wauo7Q z#{N+u$icRkt>*atsM*V3T-LeA9EgThcmhGC==$u$D!nPP!tl{)-&Y8Qzc|^ z6tZ&^a&Z(A_T&8l2$^0dAxA_ZXEJ1GXx|)#JisaZ_Xvc1e5-^^L?KVcVc~k1(3~gJ zLXwKq9SQQ+w}hl@BC&ss^HPsPoWee|LCo& zKsw$llHZ`p<`W}3Asg)-%v%d z;=V$*D}wJOII(V1h1{#ih6W(rmkW7Nk>^mFu^wj#c}$Tl?Lc~_ggmXtOU!AnT|!>e zgnD|vCge3mP8bN%=PMy^De~SVkiN0%EQ5?9Z=yZN`n3@9u_6z*2kAdh$QOzPaLEhFSCMZTw==|2hCsK{!T&Wt*+ zSh@a1iVQ$EFgCM`kjoXx?Flk#jF6Nf^Sgu0K3vFFMe=Ep=ByKPn@z-qUV`&tJ$?C$ zd*eo&i5+^IgilA|PsU;4F|?tFJtf3x5?&!f=63>_n-LOMv^3v^eFx;68TZ2CrhW~a-&C)Mzop7b6d~Ut{|&EHF^|zi8ge#hwCxdPbzX0ZRjyggrpT|LL0iKw-Bd=t!L?EkYgtc zi7T>=WbHDeN0H&Qp~szO^eA#3$?;biJuPiLXVZqBu+!*Kqdlx(L z3!_Jo11NJ+HhMeg-LCw9sTqo=j4 zXUc&fr=Df>D6)Yz^t5Y@9z_};C$ZBXGL5RVIFdX zE3tj3L&$Nop%=9h;&iad<5NKXGFV7jk@IL-E}kVM+0mAHpDDg%rP0Gjc`P}i=VaQ@ zOV2fWI@{z1+R)3k8a;|M>jH9l+UV(G%XB&jPa0U#OYy^n`uL@S!47lQiIpQwVRBdp0-Rj z?csH|7(Kmg@&#?^^-mZ*y=^j{GB>LkSJXOoXB(2C9w4t{oge3dhGCgQRZ#~}V8DNtnE#++-Q-C!ZXp<*NZr^6~ zC^BaT$hN12BnR0tpWq;N$NNI!gKcsRZRqx2gg8TNg6|DFu{-ObrJ@}u@^9MEyNZP* zwmK6*UOPibN)x0v_IgT)GtHJs(}upWOGrYImb?!B_L`8iB3o&5 z-uy~PFx`&r*p487kDq!c-sZRg8E z)CFw8p|;E}+R(2$2uUb1ifQ|Lgpjl%m(zysIZQ}!m>pXIMy_N3UMnQ2$n&(J-&`Oh zqsZ)DAm835BtF-Utta|2vG1M|l2YVB)N|}V86i%>mN}I+^!uNLBovuK8~Q_?X42ji zxs^8bzg>g`^X%BB(IWjgMo7{oVngTSyjag{`HN@y-E1Adtd;PYDEvem7T!l2`s)Qk z;)jPigxo+I`rBe@$no-~FE-0x`&n`e&?nFTug=W!^R&$pKiZ8SyY`{BXwtK3eltOK3N^{(+ z1UZXrsaCALn0vpVghCx@Omp4W1f?~iHO+Is78ESDBmCPypz3a3z$_;fYD(Lf@3t0{ zQRpEWpc-ymP<)9U;U$zRa1R!gQs_9E)SB)ZLC#WJYA$VRp}Sd7LZRA2fNHt72}&z; z1yPavS3$utJ3=<&SZ()xK}m&n(5}{Te-)HbXdd%b*KN?8r4c{Ej&LL`YdyDzpp-)2 z(zMohCkb+v+fr^npa$+zK?#NaM&sJhJxx$rp_gf08@X2t3XZfREanB&*xe;4snF51 zuT9+71!WZK%L}EcyGKxbg&pC)XvLbj)zP`j^-~Jf91V1U+eVOclr8lLno=xqhYCt4 zlyrcayN3u$D|8vHYzy~TK|zTf;VT|cOZNgnNret&3R}6i3(6>TCk<_D_h~`#qwNUW z(9*VXKM<5s=tG*?w(f6&oRzlJ(X_Sg+=dX&^%DwBps{W5_7s#>=rvl~4(@@1f>m~e zSNK33-DQH33N59*?c|;=D5KEhG`OAJl%V)(JHq9(xLw=_1f^^wCie}THyu{_3&$}Z zv&D3CzYqcEm@uw14vSu(&F${yplQS2Df9r1ZV$JGptwTSrULbJ2MJ0jbk1O)UhXVG zNrl?d?Dlq72}&vSAkA(cccY-RLY%jX^>uF+lu>9L&2B&U2|>;pJ6|hkcKf^k6ci}b zU>MK<_a{Mdg$C2?4s`3bmbzEyzwE*ea*G8e6&gmfJJ=mBD5X%)8)%5TNKjg#uV{AT z?#Y5O3iY4?9qMioouCEVeWl`0)@6wYPkD~ptwStXm&@qUkXYnw1#GPq#J9) zEGHG}K-)UXZ7C?F&?W55j&=tNN-NZnW_OG`TTn)!=V*4vx~l~_YwdikWxmF_=L-rH zIs_FJ8}HsCD6UW*joJkFNkIvP8qn-cbTfjI3VlVhJIVc7P)ebH(d-`R)@#esNGrq{ zj@V?ko1lzBXN>@w;!Y6c9B1ciCHu8g-Nk|eh467~Ox?Jr2#PB-dNj~9_ewzth5kmf zJKfzWD5=n;G`ln0R|TaMx|3#iru&tkv_hYGK(pLjv~Ns+DzutrcecxKLZDB4yq&M7 zX?EwhLj(m14TfEb9qi5#6j$gMn%zU(V+17>I-6$qP$j&=pwMYFyYt=dg5ow3vpW&z z#o)#wv-=BM%p!Nb2qYqbJ~%A;fM$2Gdy=4(LNC+oE^#jtlu@WL&F)fnhoE3xm~M&i z8k*f@?n{Ca3Js>&J;MFW=u+ran%(7YHP`@@kwR`B(2;H+C^*s9m7v*O;SLa#Q0O$8 z-J{$Yf>H|2r`auWj~0|sXgbaA(eAlM*Gaannn-nQrF)~%rO<4e-Bs>mMwdd9+1p+1 z{=?`}sM;W)W8D85UF&UKV`)IwxV5p#^%DyHFb?Qgw~L^ZLQhg^txI8)p+Yy(>>lSX z5ELYBUFSi6?09#*poBt0X?9O=FBg&|Pa)o>V@bEUpo~JzX?9O`2MP*Kv2}H&**(RbDJY>(wV6Ptx+{$? zh1^`A)7eX|^stIK?)&T?Hi++D@~3jyq0JN}*?HcF%Pe3d$(N&tJvPbCX8b>9($O zXm&TcR~TIi{gY<*eD_|XOQ9JwyPMpXjV^`i@P@b9{le%v!`5{T&F%$m4lZf5d4<-| z>|W@$5R_6V3*#rTi`+qiG73G%eEr3pB`7%4)^!=p?#1pZqf4Q8ssUZ%ZZx_S+CsB? zse7~0Wg{`WPvE>5++6t!+uD9C1g>!35`n_A!W3-7VNrtZY>WFJLB$HagR3KUrCW$A z3~xUww2Nl|fy} zRE3Hf0bS?bC8+RhJ6~HF;q~qdf{GPt9|O9<{Z!Cog%ZD%@b_>vdYm+uR!j z6)V)ZI?(NITF_*LZsVP1oBOt)5`|hd2fD-kUeG3m2D?Dp-CEsP8rv0G-vj7Qx09gV z3XP^Uxyv0bXpcgRX_4=C4;NH;j-9XAG@u>siGqq1x|F4Hk9(=0$qF?Y4|K14x1bV* zYO$8@b6*s+NueMB+UfpF&~}C19|Ls1o7J6J-mTEr*+9G80|f0+=t(rC*aL2VL51hq z`TCJ}ng`wKf{GP7j`#S7+!8^P6}le1(%8f9If69)RTcPf3y^py+2->62;&wofyG5w%T)*%WZZ#O@T)$YMbK3*G;0A&w+epmr0GtO<0_Z9a{L1~3vo(lA;d##|vCR=I@&F*XNLxP;m zHrhe6`?~w4pp-%**eu>~zZDd}z?OQ4H_yMh1-Kic6Q|G?n%y_u_JWcZ+EQ8UbpPEQ zAt<=WMzeWAzU9splvZf{6ri`=;{_%DVoT93#@=!NBFMSeM!%xJ68nd{T~JD)wYc>NwfP;_hUgBg-&C`&A2W`C{SOQ+EQ~_Det*W1O=DbXnb{`_g%g?jR$0f zzN6Xwz?~{6ak(uuy*bc_?va9=D{M5w1^UQ6OHfLoOVDCtAG_BHif^%{<`w~c;yx@W zqtJOYyPvv$7nHoxmI|f;{mcDMP;ixv9-)wa}7*76tb zNI_1@MzdKdU%ClFDTPkwmGYH)f}r>{wp5JQ>eueYf-(xtr{&t?-YF<~tu3{fZT{cx z^MZowY;+sW#lCSr5tLTwb!Pcn*TXYluAjKxmO5fO(06WALCy^}sxtxTKW<+^DTR9Q za`@imOXazKe5);W0u%p(yFyS#p`8d9`>%VppyZ9VRFj!NKf2co3U0Cy-vNyMUhHh zWfV%l!o=!&hYAYrvUL@p?ZxVOYmF|2y5|Db_bxQL6v}6Jtbw=9=u(ISlCg%~Ge+0l zwyyYCphn(@Mwdco(Wo`{_8MIZeb^AFiPs3@(`eHQHD$wX>h%&7?67ss=Z&G6H(5|Z zp-Gc~4)Bf;lv1dDBcQ-L!{}0IE$`ONy=#oFdu&}dQCAD^L8D8dnRv#Hwe&criOX1_ zk-Yd@dEXda3O&z@sI^xED$(ZewRLUc72d{cCn%v%E!v>A-f%%Fg@*A?)6P3gP)4D9 zh}wI{8D00;x|+vH|k=r_lTz21T{3fx||=-M!_45(>S^ zYq^Jarl6EU0WCmJ?^;0_g&yK_VK46?qidI~t1CwmdV6mgT?#!wYtzU3*632mN27@K z^$O5qN1L~inBDd`Z~D3Nx3*K%jxDCYH$()22f`F^qPnOi?<51fIfBv(T~D(+&^ty@ z;z3*L$}FHk-X=lLLpIt@vpd+kRZvQy!)bPhcuxt6KWs}~!U~Ri?+MB%R5B50sP~JY za?e0gdub z6_irwUE0>s-c^F)kK0nsh{kyL3(6>TEY0p%?=?ZmCv2(KG`r)xuLT89+Gs4z?szW` z=g{?2s3pzr1h2KA#8bA^7#7q-FD}UWtBq!|G$wfm3rZ<;HO=mU-Woyir){a9X?7=j zn+0VQ>PfRZ#bX}=UG-;dspDx1r+QR^`g+zzr_<~n>ljx5|mbGHf`%6-s^%AyKSi#hz|Ak2y$MwQ9m?_*kN9E7)#tU z6e{w7=6Y=e#b2?dPNr1C8!9NH&`&rQo97)ODEX=_^$xGf!@Xk#1+Uqt70vE^?*c(- zg&NcBF7R#_lz82idbt_ULhoro&KowmsyWai?*l<8h4%1TUhMrQDE>EFsxQs%60ac! z*I^13x|=p?sn=6b@=aT6G|lcZ??6Gp-);0N&F&H2GC^sD8q@49_f8j-c*~L!vzx+s zF}PXsH|7)#W{X+j@iPu+oo|N%8*o_Enr8PX?`0F0Lc3^oOS~@xr4_2nhI_P^Gm;So z@7NJOMYFroYauA9&{~?^Ro);$8HEZb1FiOE35x&2j&LLk;uvq0pp-(5Xie658wEM< z+EN#`20GTeSx`cuC-`u;)_X!wTA{lq0v+f5Q&8|vJHm!EyT^M!2}&yTAKKOvyt)X1 zx>u+d(K@eKP&{KtxRGY}L~p#HltKe(c2Dva33A@ErQXJvL~OlxvY>=Q{j-6R-WEY= zh32xLPWJ8-6wtO|$&m)If@b#=?-fBwh3=)XL+f-(xNqS-yy%Ls~pY)9Cy9ng8+&w^44JsbdS^y_ z_cCvYpx|>m!h4$oUGB{hlvF6z2Iva!7(p3@CKGM(HVKMyH|6~zC~YG#yYH`) zsOxrbhMw4AYR-qA+azinMx>jK^3oojR{G=XM!yLY3}rO*vDyLWnz8C?q9O+#~+ z_Yb4%8(Y^mG`n|u|24W4nvxB)!>f%EKJ2lkJ0s=t?O=@-3PqgMwdb>SQ-y{ zpBr5YJ;dJbLtZwj4L3Z6zN`-Pu-9Br@E=>(md-$rcmo9`6xu+uoAzc3N+~p%&E`>W zrJ#&LuhZ;4=JBg#Xouh1x@OSqKJMLQbSZQuZR-=><3^W4zY;y^y=!zSbZsr5r@SAH zt{-e&!)SK@>eWF}=K2YR?xfj$+UqJPrBDZ&-DkXUf-(x-&Fkw~Z=s;zzqYPvG`r7v zNux`l@ie>7dsi4;3b_XWz2MzzbSd;=bD$T!myNC;ZC#5o%o%&h`@-l_XbH{kZZGFR zY4ZwI>j?C+*FsQ6p<`*;UhxJA3VyP6`D`|?db0#26dF&n`4eWQ`PC+S! zo)`x7AMaH`X@$NBfWG&>5|mNs$U>kWyj)xr=<@Eh^K})i=zqOdf&zu=P6ztY8zLyK z(5_lQKY4QmB@~)N1N*agjG&}K&%}X#@iqxcDKwky@K^6vL1~5F=k@iQ$46DvmqN>F zVE20O35wj0ns)dQYuWLC5fp^J8Vzbl1MB+rk#jr_DfDr3AkXhED521SXi72PpC~A) zP?82V%U>cWrOx@$VPpxTte1Ch_xWU}OGkf&v>! zzxHdKmw^QHsu+G4aRcpmo?i`>iQGm4e@D2Y?d*6}_X9ymh1T;%p6?G3lve0b-f3$1 zGXyzam^g{>qB=kY{?SI4LbvfssOg_;bSZQqE4a|V(dbgBRac-|{$oa$Z|myS38={b zhtZ|b9E^U)YWx2+x)k~pS4XUlUwZ~iBdyR2yh!T$T?9E)Y-q+=*qKoy^Vud7yo6WOQC_ZTwVPyj4p+KWs55Ib7o7MS7;@R zx0~NWkW<~(^-~jj^X*q%Q)G*KgO$374VIE$= zVbN-KJ?8rj50z^mLX4~EK1wa{dkRWMh*FZS194tbRQd~`TbQmT{z4H*MFRbBDCtU; z6Zn>8yVSo}1olJ%%Wzo4hv?W5{+)t?I$@F-R}nvV8(Z!_FQ_C!l#+CPf*na$=_~SQ z^NKC;e-(jLB=9l?SY8bd`@H~vlp8zR?*fqPKOG5pI4pXmC(tT?te{MU7+2AEGsDI4nAh z_tX>o_XMRQ#JGyuwE|k_|02lYR40}kk@}Fg+mrnIbD7aZghc9+hCu86?t)ScEh)*( zM4Xr0l)jqPy9oqN_2-L#( z8qV~e6oF(Ua2W+yUYT+N8>rzd|9cTgHx85ZECr~cRwB%U(U9X5-O8fc;I{?H^@Ap% zz|WC}VdVrq@F8%HKT8Bskw7OLiiTBM0F`lY9t6(w&lZ7nBycDNn1}1j2~4dEfsOty z5!f9GY@`75@OmUrI%$|c90HsD&qW{;2|PjpYRH}!X1Y{hD@*ADzX<>aLYsz}-a`Ru z=%WR)oucPhN*DPPMIaLiG{>Q6SW-@4FH7k!{z)Q`Y!+&mN&#xPED|Ukfp0q+0+;)D zh(J0LIF$m-!?WcC9&;gZg`W|D!UIALJ8)R^Ia7P3|FfWYgcw&*<1C=7{CbBo=bIu# zDM?p1oR>Ck(gn+V0&6ejj~0P+B+wX#lCHzc39Ml4UE{A6fjyDH1RNI4Wgf5hFBIei z!;mjrmSTC|b%Ad1w+V_zNbGg>)<8G<&j?CHNTm8OH#hko3Q9#tq^@APZ}ImEN=Hbf zHZX;^`i5+Q7QG)4xPeDng8_=vfYm+~waTXitPhY8P$Y4*vx~L5ncSBGrnf{vQ8RK_wBQ zlspsviXF*KL#HU08Q5N6m?`FKj3!}l!*|(r(eVYq1Z$ISV2z9P`60! zZUgkNzd%qtLLxOAqOr8UUQi-JBDI(|fk*wz1*IZHDM|4iI4>!#;S_yU2SK0opOm2K zDCpHVEP8PW&{KX!&^r<0lvL5HlzQ6#S%E)84C2gKS9vI2vJHJz+#-26qj~@I}L}xEB=WhFfJ09g2SRwM6dam3Yr`t_Cbph zL~rI6qJb&dwoS05xwRAOHj}{%o4k6Mcatp@v{~&x053z*9YGx ziM{I|ASe+b>49@gN2bsG z9|WZ%#LJ=f=i^WeEl1&Uud@J&&24ojc47ZR=S+@qj#EfWWSryl#3S^;>2UWnAdZlZ z(;xZZ@(tkN63a*k6Rh2#xZImel- zi0vGw#3mAZMb2?HL?O#L$JwNa?HuP~MLgKs$T`jyn~2_uoa0;@h2%|GImg+qi0vHb zVVg+o6*v=Qyb-KrHN7UsR2bDYT$snj`6G74F#bDZr_$V#2#JQ0Pg)HzNj3R%uMj?+ENn-JSMPGFP$ zI>(7eA(u& zi0vF_jv}^moP;8_bDTwr*v@g5D`GpxS*eKa9A~W}wsV}56tSJ-oTiBF9A|?fwsV|K zirCI^E>^^LjMQrCdP9Iy3?Hnhri0vFFsR?ap=o}}li0vH5>1*q;o#Vt6v7O^2 z6|tS;q!rMQrCd&Olp_?Hnhri0vFFsfg_yC#{I> z9LE`C>#?2V#1-jF8yY&tNh)GH$4M))!Glcb9LE`K>#?2V#1*lf<0KV%w*_Jgo#Uhx z*@6MC$T^NP#MWaw$B8Razya3KIZjd$+c{2Jk%N55gwAoCxUI)_juThpgzk_Do#P}G zX;mL2bdHm@iP+HnJI8T`hT6+H$4M( z94C3GEpx30nb0{-{4kr?&T*W%HnE-Kq!szT1!4=G<0KQdjO`pJKF=n$a~$Vzo7m2A z(u&y5agy_GnImXJL+3d01vasr<2Va#Vmrr4D`GpxNiMQv#D?zQIZk|W7`~iyoRlKA za~x-hEn_>!Nho4F$4M(18jj+0cxc8-%##CDDoKhloPc8-%$#CDG3 ztgvNl=Qs&PZ09&>MQrCd!BKW>wsV}MBDQm!j3TykoOp>Ho9!GYrHJhu$2r=Tv7O^2 z6tSJ-q!qE9;{+@1*lg!GNkweuI2lE3=Q#0Ic5JqDoRlKAa~x;2E%P>JULxl>2}Nw@ zIB7+e(1wQ2ae`y)*lg!GNkw*fkO`gRWE8QTd_~GRPD&x=9LG7)mQv1f5(+8jIBA8HbDZEL zJ3{3gC#jHfj+0SHImd~wwmFsR7g3;$ta|pOIL^7YlyZ)fP)Iq)Nh_qB;{@kf5sJyJ#5qnf5|H0(D(5&Ug_Lugv_i@` zPDUZ+9LL!hCQfuI=Qx2v$~jJ4A>|w=q0qQ4XfcsbDXq7$~jI( zA>|y$Ip5CLu!)E;a*h)yq@3f#6;jS|5(+8jI7x++bDWey$~jJ2A>|w=qmXir<7~3? zrJUmg3MuC}afLcILuo|LaS{qC=Qv4)lyjVvLdrQ#S|Q~eC!>&Zj^k{$^QD~Q1PUqV zIB|uPbDV@iXN^FXBj-3tg_LugltK>QB#fNnq!m)maWV=i=Qz#|w=qmXir6I^ENQqFM_3MuC} zDTS1CoQy)sIZkl7txGw_NhqY8|w=*kbEa&T$e7Dd#vTg}&yfY~&m#qtJGm-N-pkaHXwFImbyTq@3fV6jIJ{G72f@ zIKfr6F6A62p^$QplTt`I$H^$Pj#FHbbDZF6TbFW*{zUrjOF73WR!BL=nXFK|xryF$u2&TfU2bDTX29nGne$T?2owRXOgbDUy@lyjWP3Z-fw!pJ#J zi9*Ub&L)MFbDZr8Dd#x56}k<{Ep?8wN1;~Dfg{duQ$JwLM)3mLTbDY8(?0hNbIK>Jn=QxuUQqFNo z6jIJ{HYuc><7`(*Img+pkaCW*N1@tHk*~-(PT^KNU&=X7u|n^~Ar(2tnXHgS>{j9&$GI`gQhDb%DTS1CocK+)lyZ)fQAjz*N#1Nr zDd#xBEjCilancGY=QxR5Z7Jm($DwV(k|X(2&T&!-Dd#xx+ifZ394DjD*)+S6bDZQh zTS_^{3GT4b+5l3KbDXq7$~jJAyDg=h<2ZNPNIAzzDWsg^#P71DzQaMObDWGq(`j}i z=Qzo`ZK)YFyODF8V26#AbDXq7$~jKr9$QK|$8qkpk#dfcQb;++iQi{SDd#vDg_Lug zEbDWGq$~jK* zAzMm0#|a*`k#dfcR!BL=Njzdp?PQyeoZ~oY8!6{FDTS1CocN=*lyZ)fQAjz*Nj_#v zDd#xB<2I_z6h_W*(hB`Q?7a!N9aWXTUH9G$Hw-a^L1u~>QOH0Di3}F=EMZUqhZK+m zB9O!kh;tzhsE9$arPY=~#d(PH0Ij91HqKE&ZQG%2#St{lHj4gtRjqaIde=TD_kMPs zr}_FJ-G=1-?Y;J{ed^SybI#3vr#6qW%5n0~*j|w1B%ig>#ruR_D#s}iL5`Ds&h%<8 zyW_}lYV8oqangU6T5SY5PL2q2oDvb_I5i^3and{OSdio7h#LC;h4&3v!$s5#%@}qP?>)mdbHzME5r@lPbqaH`=k5H@#Gj zlOuv0r$hufPK^k1ob+pUEXZ+kM3Cc@h+edJn4!vXYDAFZq+hpVL5`Cnf*hwrG%Nhu z!=4ixwA(rE0cgZkq1UXKP2y&d_ZrclTob;PE zf*hwp1UXLrE!zunoaEa!f*hwr1UXLjAGR0dI5i^3afw6+oCI29tuaq=J9Ui0<| zW2qb``7awmj#DCn94Gsc?FBhbjRWfZ>}R&u1>s-7_vAP=BFJ%ypW9vwn+vGQanfJdXy$N;RE|?2x~A!+a-95^ zwio0$$-Op$9H&GCIZk$;?X_F;t(3}fYDAFZ6u+{)-q2ijRgRPX+D4G$REQQF5PGQ` zC*NdyL5`FB#zv6il!ze5$$o2lL5@?~sJ-ltBgZLzC$(ZZPK^k1ob30u7vwl4BFJ%) zKiFPZpA*(dLC;O8v2suuP2y&d{&$bujI5{H7 zaVkWR3qp=lAc7pHMg%!dcE2qMIZlZPa-8HZwio0$IU>k$DnzI66CP!i9MPKQ6GoNeREQwQN&jvOexkYTsvM_4 z1UXKP2y&b(IX-EAb;csdaY{sIXJIUr<0M12*TKUfQaMhJ=%1TjD#xi1L5`CS+k%ke z6o??lsS!brla1JdkmHnyKHOY(RgRNPvb{!|Ypcp}azv2hREQwQNhjNakmD4HAjhc@ zL5`D6F$LSp?l^LsQai+QoElNHF-cF3lTMXk+Fp?3LCmpq8L5`Cn zf*hwr1UXKP2y&csnjH&roE#D4I3*&;acV@6k$N<@(3 z)QBL*NvGSfAjioO-JOO*Ryj_I2y&bn5#%`O!|Yg)mS`(o{K4g$Qz-8WH3;$qq8Z zb{df5q=+EL$q+$~lOuv0r$7WbPRXeGSzDFkREQwQsS!brlk8}Z3v!$k(chXM>r^>T zh6r+;91-L=1tQ3CN<@(3REQwQsS!brlk8-V>yGB9cT|p(B6@FgfmJz9h6r+;91-L= z1tQ3CN<@(3REQwQsS!brlRVrW7vwl8qUP(Do*XAbbZ>KkRXI+M2y&bPQR8Om$#F_V zkmFQ{Ajhc@UD#Y;RgRPFY>(^n%>`EFI4L5?aWX`Zx98w!Wj*}sR9H&48 zIZlNLa-3v0I~L?P86wDW3Ph0OREQwQNp`nmL5`Clf*hwn1UXKH2y&cc4?EUP&2v@d zI2j_yaSB9`<5Y+s$4U0IV?mCSA%YyIKm<8Xg$Qz-WG_1wuj#D6l9H&AAIZkqb9Sd@t%tq~Ioa4xGF4GRN9A_<}aNdr| zaS9u?!;B-xDYe5y4CB+6P4qX2T6yC%5joMNQa5aaVqUFQ8`X>u#7NK zIZmk^CMw6NwZlZ^IN2j*N)wgiIO!pBAQP42oT43KIZm!oEXTP{qlwCKO6@RF zIZl1397rt3$!19u%W;a?wio0$wMMZVC!K40wb!3<M8KaV5F$+g2oM*Fi|;9a)gX9Q8`Yg9VRNrS+5;pIZmZfEXSF#K;|`3IZmb>cDq=vycdT*v|f;& zO$TzERodZ<(2jDPLZkM|3pq}uQG30H9H-W(?FBhbx=@a$?FBhbrcv7qa-2e=-c|na zOXQGxidD#QO6{;$XxF~_EQ>loju^eCA|)2p5FKsipPO=CIElQe3+lA;`El}51~=X#CWUXbII8pU#)J2Yx~wI{$h za-1({hggoYQKMLnlN>Dz6U%XOjbb@YsZlJ)*{D(b{J1kz@5ym$jbb^@Z#9bLILR?G z!&r{9NTXPeQ)m>+acYfXInIp7$XKx)XSPP|aY2rgY1BL&CMd^Ahr_~ja-7RWj&tkE ztbLk3=j`@B$>+9zNRE^2JnbPl&i_d{&b6%^$Di|CT#mEXrtm}?zVWgd$DSBuJn22{ z-$ahH_g~t-oxk0g$@wj5WEbDg$~09A_saR*ti~P1 z$#M44md%SWPP1-YX zkQ^sHMIM21wB@*RoKjmxa-5Bt zj4Q`UPLm@TSB^7VTaGKoIYC>FE62&TWhBQbkXSiRX_L*$aVl*Y$#Ig?<*3`l%5gHA zw72e?m*W)LK9b|S2#J;BT#v-cabAhU%5iQ+V&yn*Kw{-MZ$@I}IPXAWoEb>09A_saR*thf5-Z2q2Z@#A9E8Nm zaSladajYCCLt^DP1rjUAsgPJXPI8VN$I5XsBvy`7AhB|s3W=5D zB%5gFzR*q93v2vUWiIw9dkF(=gIZlSe%5e%L zR*q94S^R?VuAw5w$&gq%PJzVA zaVjL!o1Z-tIZkrE9mmRXG9>4Yggzq2DUet>PKCtEagqz{I9866*`&ROZeEU4X!}Tx zlU*odw277DBu})7mE%-MtQ@C!lI>&VIN6hJV&yo=Q*2`8I295r$0-)uK30yC#SUFCG#L97si)|k($H^{1(p*DDj*~30iIwA2NUR*ESZe!NIZn3BCRUDam$IZpCan^-wcg~ZBnipy;uE62&Mu!)u9Bv;zR%5f?rR*qAw zuzjo?CtGO~E5}Jz*~H3mDkN5pQ#{S~v2vVjwN0!XCs|_?E61sjSUFCy*7mV-oNS#< ztQ;q~$|i4YuAw5wsgPJXPVscx$I5ZCt8Mbf<{Bz;oa7lcv2vUWiIw9N&$NB494C90 zO{^RzdA3b19| zRXMUGPwFST4TxL~{Qy_vIr$z)hPWDDy@PK_o!2^bV6mD9ljg*KW$4TB~ zdqIwqBZ3^KLIgQZ`es}3bt7RKj~sexm`%9iBZ3^KMg%!dcAG5-IZkP#_LBR}Fi`tN z{nYmNp=9PynhoaX4Bgw#AbE?_s={AqLXMLnf*dD91UXKQ2y&bP5#%@}BFJ$nM3Cdu zh)%O|oaC+cxFE+#5$$|jSdAlx?%%I@JTgR(k$ z3Ph0Ol!ze5sSrVqQzL>LCwYfGF353GM3CcTh#<$w5kZbqAiBA^?5Z56LC$4NhE$ATOuM+7-ei3oC>8WH3;>4)rCkmKZtAjc^Y zL5@=+8XgHxhnEi(hcr)z^uu;6$Z>K+kmHny9=~rWxPItsZNVB5{yWFcGvf|>T#)0;Mg%#|B1DkmtU?4i&U!>?8dgK)I2#Z_j|vk^g#vj`F7II9prjh_lX>*L8WH3;#kXxQ$Z^vDuo2`q6(Y!S^6%JQ zkmDr(X(PySN<@(3WZ$*DrZ$hV%5iE$kmD5Jv%Mh4NxyF+$Z;wgwU^y-LC#`Kk$Z>K+kmHnyAjhc@L5`FD(2fN;PL2q2oDvb_I5i^3ank>?V?mCS zBZ3^KLES0Kdvcr{5#%@}BFJ%SM3Cd8Kel5*j*}yT9H&GCIZlme zkLG?s(>9_Z;268UMK*3v!$s5#%@} zBFJ%SM3Cd8zp!ILj*}yT9H&GCIZllTa-8&+cC1<9UqklfI5{H7aY{sx?7wX<$Z={!kmD5h+g_04q<^syWY|WKh5v+a{3qF7kmID2Z3H<^g$Qz-e2VP_IZiUwMv&u_h#<$w zMr|+1acV@6;}p|uFUWDyt!xB2PK5|^oP2B3tG(=wBgaX$kq)sOCr1Q1PK5|^oOD}T z5OSOX5#%^EBFJ&F>9!!`I3*&;agvAGUXbJDh#<$Q5J8TU&aed`$0-m&j#DFo94Fh( z7K9w9L91-L=6(Y!S z(p_x9vzrU3%5e%rkmJ;dAjipewFR3KW%Sj<-#DeY?3Rci$4Pdxy&%WQ5kZbqA%Ywy z-Q5<19H&4u+Nc;*j#DFo94Fhu7K9w9LBt1D!i3oC>8WH3;X==xU94AKvIZlZPa-13w z8WH3;>Hc;s$Z>K+kmHnyAjhc@L5`CiV8?K+kmHnyAjhc@L5`C)lM274w$~`gadJeLHCJSn_FI4L5?aWX`ZRF|rzgkB5J8TUBZ3^KKm<8XiRf=(PCYqJg$Qz-8WH3;$)WbRAje4& zL5`Clf*dDD1UXKD2y&bf5#%@(BFJ%SM3Cbov+Qv}j*}vS94A8rIZloUa-0GYuj*}yT9H&48IZlb_i<81}O&+;6Y+D$P3(=37Xv#?Q z08AUH5kZcV%(ce_IZkS$_P%x;IZmb>VmVHM2y&bX5#%_@VKTY4Amlh1BFJ$HM3CcD zh#<#F=Gn0z$H@>uj#D6l9H&AAIZkr89Sd@t3=!lw1tQ3CDnyXuB=hZ9kmF>CAjc^X zL5@=)f*dC~!j1(wPKF3_oB|Q#I29tuagqggEXZ*(M3CbYh#<$Q5J8TUEVN@mj*}sR z9H&48IZlNLa-8JRb}YzoGDKev?M5FtQk>sB!wW=^<5Y+s$4QQ~V?mCSA%YyIKm<8X zg$Qz-gj_oD31+F_z{ob-4ZVWM)JTsuru zj#FueiOO+m?a-(W+D&f9k>jK%$T76rr>~t9PP0o!c6oAhnq?Zb+62gP3XOW&gmL6J zrFNL89A}euh~+rxi8AF_jC$1Ma-2olVWM)JLOV=Uj#Hf> zQ<|t8Cp}X-OjM3jYKMu+aVqUFQ8~^=?QlabuLI-Aacb=_Q8`ZeSUKoTI>I<|oLW0f zRE|@eB_m8!j#FueiOO+iERqpoIZmcgEXP@|(M07qm3Ek@9A}euh~+rR*)rw!$_qJ8 zrcrynh8!o?sO@#cq;M&J+sKbEZZ74eMr|+1aVm}4UXbG?=g2gASNX#)*{mEV)ed`w zcI~UrvZw>(IIFb7qR@_VoKmBv7UejbG-`W6j+34%Q*L`fjGk=Mot8EQw|U$N z%{^x_we1BtPO4Gc>y%?duP=?9(e^q@qo!AT0*oWaIZZpna-2mP#d4fNqgakpYZS|I z(#Ojo#d4fQ8nw@lJC6^C^!<^&mNg5JYZS|IR%;Z?aSDxMInG9nVmVIo1eswh$H_Hn zuEaA>ZT`8z&qhAg&Tzd(u^eZEM(uGyj#FvWJRQcB*m2z*+8y<{ zB>Cp2v(O?*RQj_`*m7w2)w_q^_6tA6oQw>$hcPnT9>%2ZFh=AsZfcs%Ufee8mY_S7 zr!_=Y;}`Qno5QYcNVhN}-J*rU&B2FK)5D64Oq%rJ@VDWsLdB80UfQ%Cope)po(|s; zo?w%%4_^o*!#jk3ZaV4Z%^yRJW&tOUP8q#1{B_FckHYU$n?DYpwlMJ7zYBjHJt_S0 z+f)9yb~r4Caw9`g7#f;bar(&oSMfMf#Ix>iT zhh%lpCO0C1^alx~KQ?K{{k)F5OETk!yN2q|_;tq^&+s z`g7?C-AcvMA0&|eAc6G9ChfQbr9axTxw)Y92MMGTVTSo(tm(jO#{{vd($ z2MMGR9??llCpiIMN?&A4`9bK>C9O(jO#{{vd($ z2MMG`>g9Oqa zB#{0ff%FFnq(4{4Sr|)ykU;u_1kxWQkp3Wn^alx~KS&_`LGrY46&XEg?KaJ|WF8Vo ze~>`>g9OqaB#{0ff%FFnq(4Z~a7FA%e~>`>g9OqaB#{0ff%FFnq(4X?{Xqih4-!a! zkU;u_`>v(k`>g9Or_RdyUme~>`>g9OqaB#{0*&5i@<4-!a! zkU;u_1k#_?b{t55kU;u_1kxWQkp8T(<3Rd@1kxWQkp3Wn^k=Od2htxTkp3Wn^alx~ zKkMu`kp3Wn^alx~KS&ld*HD%ITxG|B^alx~KS&_`K?3Q|)9pBr{vd($2MMGAbI1k#^tYy#;I5=eiZZ~H*{b1jnQK2)VY zFR%%uKS&_`d7CcO70_o3-Z35{J5=eipvwa}_d5KLR{duWPApJoC>Cek-A4q?$ zw+W;_FSiM#KS&_`xxw~<^yd{ef%Ip+O(6Y20_o3G7$TMg15CcA`3`tCA(jvGFAy3O{1 z^alx~KS&_`d5f(E=?@Y}e~>`>^Hy68(jO#{{=Cihf%FFnq(4X?{dv2sw%vYV-G2D( z-I{ePkU;u_1k#^(*lLjeAc6Gfowg68KS+)X%|?H^Hhg^-zN1G1>Cd}tHAsJuK>C9O z(w}$RYL_+FP?i25f%NA+whyE~NFe<|0_o3tZMEs)lk1-J2MMG$V5>p;g9Or_ z_t`$zHrG&<{vd($2MMG<@3++;{jo`V4IM}NqwQnq&j)0TSo(tm(w`5SK2G|Bh|(WK zl>U6k7NqnC5v4zfDE;}cElBAPB1(TgVteh^JbFFp48#EQTp?*wil&8h$#I*^tI-b(p`scX~#-GVGC0FgXn3Y-RSN^celN2M3nw~(iWuj z2N9(|mF-3852B*E$o8Z^h$#K}lr2c<4{ve|C=ih8EN`DYh z`h$qlpU>EWuWO#LJ?Rf3N`DYh`tw;^kkTI;wU^v)hQr>R^yhO@tNnMwl>Q*1^al~8 zKZq#(K}6{fB1(S{QTl_3(w~2~$3^K6B1(S{QTl_3(jP>W{ve|C2N9(|h$#KJ(;gS4 zKZq#(K}6{fB1(S{QTl_3(jP>W{ve|C=kxZsDE&e7r2WG4=k%d>9MD{LGengBAfogK z5v4zfDE&c1=?|jo!jX)gJ#@x_%?y(-*yEz~2N9(|h$#I*MClKro14pSPx^z1(jP>W z{ve|C=Zp5ZDE&cnOmo@oNq-Pg`h$qlA4HV?AfogK(FdB#ZcqAyh|-@g+2f-02N9(| zHfk@s<4J$CLm%l6B1(S{QTp>`nRg%Q4$ zI~Jush$#I*MClJAN`E%mu_*mPMClJAN`DYh`tvnA7NtLkDE&c1=?@}Gf4*+VqVxw5 zr9X()>=&Lt#n9g2hn1&|)QBkk`Gy^f(jP>W{ve|C2N9(|ciFL;58y^$H1u!n40A-3 z{ve|C2N9(|ciXX=H%_B39h!AWvl=;~4b5fuWkaX6QHhAsA4J2=<*6tA`KBF<(jP>W z{vdjMbJ^`le-Kgn^DR3Tr9X%${XsQ*1^yfSFxG4QWMClJAN`DYh`h$qlA4HV? zAfogK5v4!>X^)H2A4HV?AfogK5v4zfDE&c1=?@}Ge-Kgn^Idyfl>Q*1^al~8KZv$# zJ}&sk&{yU(m#6iJ(lkUp=?@}Ge-QmT{ABHz^al~8Ki{**Md=SBN`DYh`h)1s=Gywn zp|`Z|q4kI;{XsQ*1 z^ydfmxG4QWMCp%>+RN^E(jV>6NBUFC4Ejia5K;Q`L)(kepZ~HEr9X%${rQpY_1)&h zvnTyQMCs3uZ7)iH?y(W2KZq#(`HAgC>CaDXMClKrtD9%|_lLgN8jG@@*68(q*mC_U*9B1(ULYkN`pgNV|f-`QT2{`}rXl>Q*1^yd$@7o|Ucv=OC0h$#K} zlkG+64CfM6MCp%>+RN^E(x1Oetv=EpM3nv@qVy*@F=>8HZ3|NRgNV`}M3nv@qV#9Tjz#GY zB1(S{QTl_3(w|{F)-S_fMrRIh6aH~+cyot{(jP>W{ve|CXT***J^Uo(nDhq`r9X%$ z{XsA9M3nv@qV#9fjQ*1^al~8KU>+cDE&c1=?@}Ge-Kgnv$Y*-*5t4n^M}8EO#56$MClJAN`GwB zUUtWm{%j*N=p+3>MCs4Aw%5N*3iCdCczyWS?BP3v={BPD2N9(|53{`}{Xs75K;QGgY8A>4}7ksH4RUPp7bZR5v4zfDE-;n_M-G>9~&*q!dOok-un3FsaGPR^k-k&>zbxl zPx^z1(x3foFG_#*w-Kd3h$#Iz!1ki_=Rg}#`h$qlpMz{KN`DZ2pt(jZAD$O(GQ-an zKEn1od2)!JI($|er3c%H(jP>W{yft3YA?HGsMh`@!=(22(PZW^4-3Pr82)fOO!6q{ z@Y3+tnfr&&zD8FLH(!c`n>a+2{ve|C=MYW{ve|C=TKXa(jP>W{>-wyDE&c1 z=?@}Ge`ec)l>Q*1^al~8KXYtBN`DYh`ZL$|qVxw5r9X%${W;7Qr1S?7r9X%${h4PA zQu>34(x1a^FG_z9QTl_3(x3UZAf-QuDE&c1>CX|iAf-QuKG9ruZy4U`l=d!Uf$c@< z4Q*1^al~8KgZj#DE&c1=?@}Ge-KgnbAla< z(jP>W{ve|C2N9(|C)%+n{Xs{yikAbMYO+3iVx5FOlHc6-tvM3nxVYR97V2N9(|h$#I*MCs3I zb}UMN5M9<>k$ch~M3nv@divzh>+8cupVeF(($no&l>Q*1^al~8KN|Is{+uCW^^yJ{ zqVxw5r9X%${Xsw8us152LWL-W{ve|C2N9(|h$#I*bZ>Kk?MZ(SQTnsU9v7uQh$#I*MClJAN`DZ2zPZ5u zb$I=`?adOR3!3w=C;dT0=?@}Gf6lhYMd=SBN`DYh`h$qlA4HV?Ao}8@a9lm<527D6 zQBV4Vh|-^P>~T^0W25%Ic0B2icIYGhK}6{fB1(VGmC5yy{ve|C2N9(|h$#Iz&yGdu z4`r$9vM4CcnwSob#<>z?!n5v4zfDE&c1>Ccnx zSgXQcM(2;b{etGi&Ja=hgNV`}M3nwK#g0Yk4F;2M(wtp<4J$C zLm%l6q9ptplm0B0c~4mSqa7wJ{m~8+mi}mm2}^%2l4F>#^hY~PSo(9Zj4)y8k9L@_ z^yd;8VZzcM?J!~Kk9L@_^hY~13Ws)++wr77OXL{ZZQ<88w;ny|k4CKyg3=$2dOC>l zq(9nW!qOk@&`0{SRHocV`lHc=r9awX!qOk@&`0{CQ6K5gGMVy(r9awX!qT5hWrRM` zAC3A*f0o-`l>TVcNBZ+r)2qGAow-=PtQu~=teTw6oFDeN7`=Ank`RP~A7>Co($KIJ0+ zE#q5;!UOlpk=;WOKDb^X2fay07*G169VRUOSt%n-So)(KCM^AFZX&|3sePnB8ugL> zXf$Ezk9L@_^hZ1Nk^VeQrrch6DgDu?y)S{b{K^hcw%*9FZ(Q;j@tN%IuTHR>b%(WvRw&iK8dOM8Wlq(9p9 zme9gUe>8f<Xw*mgqfsB}&(mdweWX7cHCJLM{n4n8^hcxixG4S6sChb!EBzVT zZfO7M+iyKGeYfe`4b7Z7BkaRByi+nV{n1+=x%H{r2i?qm$<|vR6Y}7nkw1oil{NWc zfrb~E=08oVsRty@e@3?-8kxTJ)=l4`@YiYE_6jWst+$fDPCj+}=C51pFyVw68aj3R zrpLB>hdQ%DIQ`I}$L!M0;=o;+iDf(g({Z~rO&&HmC~&&j4euNr5%YRuG=JSL{MDp0 zB@IJ1>GordAG6C*Ve_CJENEIJ53Pqh^pDx)q4k*H`7!ns(Pv9|icHeeyLn51p8LO_CGy2h+lpDtN@gQ+DVt)3*)34~0J` z&EIFOTeEuB@)eg{v2MxIr2Wek%P*dF=_QxUx_ZI<#q;MKvU=%~%Pv}b$Q8?1th;*F zyh9fpdN`X)-&q$gU%Mtb^w3#{9@_mL{?PpYd1sw<#<@vy@rp&OS6;IC(xodFA9wQH z#TQ+5_1r_lB{xadtX&d}XNO+aOeXw!$6)zUT7S@VZv zWZKZ^jiXlu72EKX_2KuS^;1UQKYYmcqwAW#Oj$eSC!@EFmcs|{^r~yGz4evXURyT* z8<{qI(9mN;5dLputI;=%mZNiS9sR@TzYafg`{76K*c7{?`EB%D&F?}+uN_09x3qsQ zo8L#)jlLoLcWBCKQ$}`r!{{4rsU4aI|5&LVwp^+0U8(=U0q(fvO8Eo)AIxeCmfC`A zwFOIs1Kd)lXqeTl_7r_^Ec=7=yn1lX>cM%oZ^2oGtLU4z&?)-R+1|aJP2|Pv|NPlL zbIZMWZNY2%j5mzla{KUbxS@NH-QvypU%th=^hmkI+j;`Gc(*=ui?@X?ng8c616%O9 zy9G-3{uGyhRU|&+%?u z`TyZ2?~TI;Km5k<`JMdljqT@nXN1o)+E4PrXL;L(&+^_fdPn;)Uic)h`~MwBUn)(y zhPSqVyEVMW#AkKQCx4?a2&HaqKD2vf^IP}%-)Q?W-{`j+GV+YE5Bs)W78;jLhqhoj zdRtU*hkvwSQ}&i{C|h)fw`|E7c54~W@E<+Xa8&DTSB(c!85 z(6hO{Wov(6?tkxv^g;hzX+A0J?xNSMy=e8?W0x#heO&uvmB+1H7JjO7&f;?xEL?p2 zV^2OTxn%k3OU}J)`LeYwzHrVF^Eb!m4QPM(06u>JKVkr1Fn}+N_`G?|Jm<_#7Oz{e zZq3pqbJ1e%;tLON4L?puUNWb zrSE&#Tq*8Wr#EPSzOeb()s<`PO3z(<&YZ)$6&;+-+f2X1HoI5U?D&x# z<9uYtI3L+D&PR5PbKE(LFPuBC&$wfp~{<8F$cp7AA|=T()xc+KbmM z!=oQ6&RNhbR8(-z!uG6)pE4bf4n*2V2O>N=5aENyjSfWG4>;)#YmQ;SiPdHUPOLT? zaALLDf@Il>i>_RnTye$fx#54!&uWK@N^^zL3rqOn?EcrBxl&+V_%ZG|^B1qh!iQ6+ zeWGw31D(5|eLMznu1jctSa+f?2v6=SF1mD0^Bn2(^W^RsJf}TLx%OkV_?VCJXihRV zAM>&He9QxHFJckZtIy)aE0-;E%ha6l-GXpZ4eu^_(X~?AN0XY{j?OY+P92U8t-}L~ z#D~z~q zFuy$=;%@Tz#z8op`@WpEm}}WwVOq?!>|w5D5A)pYVV?dy9IeE>_DK{^{0KeS`~nSF z0cjuA@18(mJ)=5(&a!5jvs)f7O~>Q4>3F<29gkP1v##;*6|9oI9`Aj$H(8|=cLF|JX+V{KP>EURW zUF&F)-K9LbHg`BG(%}I`c%We>UF+z0y2~%ug1dde-8nuU@`(>Efj;miP-` z*Ed@24o7Qo*q}x2c+|e{U41w{;n9%@j}Aq6^ymwZuP%C%Wl#RGaie+mdFqDNEsf^b z(rAV)jpo=9hny>iXrVaiKaEnm<+KD{@E=0lh{ z1C!|E9JyZ%Q(1h;W#J3oWL5J)OY@PAyaR3DeKs!`3+?G(25Ucx@ux$#9?@CS;plYe zaCAB>?0@s$;iyQ52Na1O$F6nsICeOC96QX%F`Nv2Z=J^Yyky;qHOntuv2;lq)^@dD zBk3JYO?Wgn;nC!Tb9Uj(Zdb2)V8hF3^JXl(<6U;e%8S-w9-&?L!XM72exE!vkM3cE zqr>}0eXpzCwU~z+hVO8nx3uP#H+pN@%ldz$qHk&KMXGtO_qo$=aQ7Z%@CvxgU9S=! ziU#*NV|$oqY!CB{?P0D{b5aeuF`lar^uWvYg6Q1n_kOAwx?LbXZF@MLf7_b#Zzj5+ z|7(G8mKke5s7|~PUH$m^(Q!T~WA(WPfzO%K|FeY_N3-l&N0aPuG{+7{Q|xdw!wz$T zVc8GU2e#koKj@C9`@nz?VRNwUjc$BYEsl<=JEfu`9gd20ctDY8X}Z=&n7jK`Yolvp z*N7_;j-tD}@AGL$`EUQ5T@kKquXS{Gbu-~%hSuHXBr2kBK;&X_;*v|3u35A+e9hH;3>{t!+(lJB z28|E3`@G-r_IcN5A;&luVT^MX8a}tZn!u>-6#2_ z3$G%*o3-Q2?NxgN)m@4m;AI~syhxu^!Fdxkxj*e>3n}zmZIb@h(cfZXcdzeG^ zFo*2n==AAoa~*rF!{_GVZf(s)S1nz9@kMKv;<*+Yb@vxxt=snj&D)6feSm#Njq+>WQ7O%RmAJo1H>+@M}Z$|NH-CdjFr`dq(p}d4dbM5=m5{^N5{4^VIO_cW0AJWZ*ZDfw{LU8bFANB-8)V9n1@dKW_L4vcv!tY(dy_M zWc#$~wO%;*oek#kpA8q^jonEdb^B?1w2dU4)(C411S=bgwN7CW=K>A-3yVtX* zNQVa$i5H`-9betLPkIMESKW(f^Td}9e4>U!?Y=Q}g_}VEzr#Gru;6m5@7ARWx|_`C`1?Lz#@cfQ z#&|UQ_GE}A-_mIAa^kqxy1q}u-UAnY%(!Koi zX0wOG>u>Ypj%n|c{_q|gvk2?bJ(=Tm?=FpwYvt(CXr~dKNBuv7ZE5s4v@}|bmPU_5 zOSu%`NLm`rtou`_UfeTJ&%QSUjUJG9=dQT)jC z`zR$mVDfo)`*Vfi63r7pbIwa?^l-GbxDeVldN{fh)=e`kgv`gD-b$lIYuj>ep>6jH z7vVmW3ytN2uP~41!;95RFIp0RcoCWnc+21K$B)7hcbL=dVNR@v`550&)Rh> zmLA={Y%RZ}p{p;s?C7w0^C9!+rH5Ra9ujs{KKhb{n|<36UdEcm3oqaOe%PhGm5-ix zEsa*FrO^VlG+LjQMyFs)qeW{e*DO4!E#=IVa%M_7Go_rF(#^bg=<~AQJ*x4uq4%>t zi?0kDRpa8^Jm}JGz#FNtH__b#)crhC^x0gPvAijb)mWQ@2jL5o@Wx{4n(&3AyhrnMj^CkmcQ>3^vw-qm&mLh9$HU8;os}z=^2c}L ze?irKFyhK~@3VMTh0*%GhwI^J%3bUEVPl7@&p6|p-cJ$Pp~7R-J()RF4@c*3*P281 zT1Sss*E)L8Ivg!phsRzRqpNNhsQaKhoW}!yZYjEPmoB`BG^-|0bU8EJKWuBSKGB7* z?ZSySCqe&DNIJ|V?6r=Uu+K|tv$8E_ksdyL><-MougXp#9Dg`{?lZg&T zwL2Wu?r`_Wo^)zZ(z|m|zSiJF*DRHOtlIZ;!|pSIvCq29tBC!crD?#`4wc(?CGHie zS%mfhj-L!IjvoX$gZ$C7Z)&3=-6c3GGT>Y44oAv^yLf^l-LMK}?9_a>V^#p2hAzCZR93ikc6 zr!gL#iPD~r^jQ1oG3{<|qqD2S(SzDy4jRt$4s*;Nj?S*G^?;d#6{OGIAqNA1XfWx}?y+Cx6iLVawT|#uG3g=q44||{2l7@Ge@VHLL<2oJZ zVT{$`qc+B)$7k#_9{b|fbm%@ui_b&t(fb}YzM*Qqi5;}^%@VF!w|Lp=rB7RY@+r^6 z(;}Q*-Mws|QQOzr__N4v8F;v%jC`RIJuwD+BHrP{``v5~xKU{D1Q!hKFt}7S)$X&$ zg#%0RA!{F*K41QaWA2v1EnR5e?_RAb)AwtDu{r}jIBD;)nhEqhMENFn&`tZien;8% z8C-4tz&=L|O!_`B?KnImnq}y&Q1KJ50qWhc$P3!KTIJO^{`=5bsANr@d^ciq--n%sLY#-}4;HJITFFLtef>7 z@NJXuxJ=hRer)^g_0!bvcwDFBgX(aR#_Dhp#&|g8`#vXns}~w9UU|imW)qBXlkQLN z?nmF;^QL)dx_{vBf@au0uY5hsgAHZc#&MDEH7R;hb(lp$?GAIn%oL;3pli&+!< z-Cdx=9Q!U~coGfz2L;{I@gSOE`oF#IaC8tI=7ZiV5tJ zc83=vD_5-w-$`8*Zmpw#gxxiQNtJ}5anH(OAb~!kaK>K|* zs*O31USrN$8*>`H#sg{$c)1FXZ+Evd_%pID=URl(x+~Cl-J(V5x<#wf;pjj+934`J zxd7oj>HiUCpVwDy%kh+QxIp{<`-3sggBjydb*VF`K9_i`PIR17CtBP7$FH}c{hM== z;c;z?aEeN!iF8-E=qcFYXjwYU0mD&tm)@vIhod4L9#DkS?$wSKwkr}HPKUWpp-A`P z7>k4@kjLrJS_V{?m(Bv>nbZXsFS>;K$9|&ptWluplkvoRxCUN;zkx z(L%R%qa$f4&#*A#J~LCwnJMMWlyYWDqd9c-aE$YC#yAgWj7MjqjLYR6 zYah+C`>_sQ`X}?`^b6-9) znQ_C?KJB+pcJ9k}NYcK1$K;^Ce5d5kujp6*;YqT-AKy8-tS{dsDf;qVqq#R=B-w2M z-+chzV*uZC0N*R(L3)@>N`CWqA8ZrAP!g}(E`bjx+a{~rJE?8NxR@{wm>{9Dld)t#&%L zo#7Oj=jVmbaQq(OJ2^fy+#T2Mj_)CSAK}xb{t?1wJAStCV;sL+_#)wYroLGCD#za> ze7)nJ6u!an{}jH_@jnUQVIj%XvOW~>TvxHZ|cMyK1@LKp$!f(*} zJ9qVG2!F5e*}{W@wEeYFcqaTw!ha>a6n>EKZ6B46V z*ZE%|`~>06^S}A^a^bn~w53V%TH%G`ZxdcR{t@Ao@J#A_MtHJoH&5kX7oIu(L*a#R zJmA=$_$wV>DEwx}&l3Iy$Cn9zv*XVZ{tm})628IlcL@KmX|@xz3F$MMsI*N*4Hf8zMlh2QJ=4Z?rx_-(@f z?D!qR|K|8NgiqS7JAcAo+h4yBzLn!cQ@eGT;rPzNcXE7|@ZB9hN%%gFKUw%ej;|Gd zsN*jaKF{$t34gTXw+qi4|GMy#9RIoSGaOGwyLC9n@tuXA@Az!tPjUPd;Y%FPg+JBt ztA(#}{1w8la{MjApY8Z3gg@W$ZwkN8@m~qQ!SN~K1-*G*+~oM4!e8t7eBq_zj}`tF z$Cn9zm*dYBUI{-)&fA-WC%bp&v+{Qc&m6CW7mj~Z>pOn0*58BmN5TtGvksZ#y9zHH zpCi0-{AA(Do~-|5t?&3+t?&5Dw7%nS)cSj|{>QYw;~TZU<3H8^>@A!7%#-KS* zl6_hKAmN$gnef8#^MzNAuhjbcvHpv+zT^L*^&S6^)_45NT7Q4mzenpk{(#nZe8=!s zq*;f`@ka?y4q*M`g=daGQF!6_8m;g6%e4N1tp6sh@A&On-|=r~eaC;P^$%kGk#NJ` zULPFaO?V;vgK{04qwOEj)lq)3@Z@0fCkw9}U!(OO$@VYN`i~+nwf-UGAJO`be?{vb z%Jx6j`m@OI*ZQ-`w+l~+_Iz;sAmPOvwttN9Y%clZg(ruRU#aySe}UGY$M&z)`iGOh zPwUSozfn|YRHoU=UuMZ2!_Y+<@ex&f?(QJQ?@a#zPmNh@S*`yV^6zPV$N!-9Gq&GmJ9)kwOTMr0kLE)<1>(&syK{88f?eC{AVjgM??Nk!Qk_)5*^l zUOB!>>z~2)*J=GT$xE&OSn`i*ec`!W$G##wJ*#W4{Kvuz$L|+jJ3eE3IUg3W&H=(p z$B!1CoXz&<3C|tBTzKX9HNw+#Sm!mu3&-ChymtJv!n1Q(=exp7$A2e0IgjnP3LiK$ z*N5Eky@gkfA0a$_9P2z*c;Wa`;kDz>7M?wxbzUXBbo?E{lP9qKr-bK@e_MFv_^*Yh z=d;d~9p!o9_#VP*$L9&pE?}M0g_n+BEIhf8?Vl+;cl?#YE63k1JbfbTRKg3#za_kO z{MW*>C$Y}dow{`>9p6iM@?^F@LU``@S;8yFmkCdw!aC0pUO4`0;kD!M7M?9;ozDs{ z9si#2Bxn0S2+tkgHhi_v-ak0Lzwq=T);U^u;rQc(*TPSd>)7SOvx~br%C8Y#I{q5r z$t7(6ZsED(|0cY0{5!(aC9Lxs;f3R);RDQO9cst-6rL?*oq57b$4?iYEMxnNh3Aex zLwM!*dg1A%tn*gkh2x(PUORr5@a!_y`K9pE@!{}AOM4%+ob7iJo;yBUc;)!X!qca+ z&QpXJj;|A5JAS?J>~hw5lkn2-=!c)gH;hE!45S}}}LU`f$3x$`Czg~Fd_y>j8j(G%c0E61NEymtI0!jorm{-yBL@s9}4 z9RI5D-0`0ZFC727@Y3;zhYLuv4wd7xgx8LrEIfG@=f7BZ>iE-zXO6!@crJXur2BQ7 z@Y3>a-0|uAbn8$$zQ6F=@uP&N1?!(H zJa_!5THo<&w7%mvYyE3j|Giq@@y}^}$G@lb9sj-7e?IGPy{}v!9N$NH>G(q7wc}?C zPp@VD$>{k zV~zIL@xo_2exdM1jz3NKD#x!AzTWX$gl};CBf>X2{#D_d9RI2C886}d|0aC4<2xSE zt-~V64-vk~@e_rwcl^o1H#ojd_(sQHE_{>Yw+Wx|QqKPl;j?+V}G`0s^p zbbQG-5ab;p~%p6z!RUOPTdc=0c6e}?e%4dhFN zSB^hhczz4p-y}RK$=@Zsbo?{Ivs>Bzd%|nS|0uk8Bim0uM9%*=kslzua{L(K`J37P z3Br@x$X5w39e;`N>@95nM&Y&Nw+k=c%J$z7p1zIzm%=N@Cmq@yZ~k_+-$Quv4)XcJ zOUKU=p1qUpFB4unevRt8(9C@THowjD8JN|2}@A#D2 z-8$5c?;$*WKkLsEo;!ZJ@Y3;%wZ7xe(E1->{q)%uQ) z%<0ylbbMFgwc~SyrypYdQ-tS^FV^~wU#0aOf4SEGFzdfr>pOnC)_45tTHo=XYyFR~ z{?J^xJ~+OM@Y3-)!fVG*6`p>S^)J%;jz2@|JAR|qcl_;I|6{EGDXs7Le`tNjf1~vs zpLUpBA3o0ddkfDUUnsnE{A}U15~j*rai)}i<$+wUSgt;lB!uN)6%uJ-*!{wcP9ityyqt$5#r^H?sYUgePAke}nMS@ed2nzRvbv5nem~6XC@-*#2+A)4RxbI-*;L%JD;m z=XbOHNy3wFl0QXw>G)N`vv0Be4Z>^3-y*#DHrszfc={jY-xOXs{wv}6ci4W)0y+Qx zv*Q=ab!>Oxx#M$%SB{?|JpC@~JVkin_*&t$<1ZDSeUEiY;icmr7M^^c?Y}HMcl^h~ zE64vLJpBRd%v{*5PvQ6@gx8K|!n2xno*=w*e1-7jhiv~s;ko0l7hXC30paO?vCbES z7moi>cEzymI_<;psiB^L*ij?f@A@4`#Rzb`!bDck=+c<%T%N6PiV@qLA-KVzLEg%^&WE4+66a^cy}S?5~erQ@#? zp8SICKOj7J{ENaX$A2U|{Uz)CMR?)(_D6N=P&@ue;n}^cbG-1<@h1vT?qmBk!gI%8 zCcJX|O~TV(b#?T8<;S#+<6jkCI)0Dv+VQ_={a>^Gc1L&XkUM^$@Y3<4h1ZUsD?HuA z`cKvRj$fno9lu%YJN{m+{~Ol-oYr^zds^S|-)nuxw?3v@hxE6szmM?T@rA-m#}^5& z9luoT|Bm&atMwg!wbpn1U0UDqf7ANEXZ`PJeaC;J^&KC5j65$K-%EJ<2iBi2Ja_y| z;icnCw7%od()xd7{a0#z$KS5?9j~;$`T|5@wb&-ydMU)!H!ar_|RrQ@0KT6mgt zzaB3<`Ahgi_?5Q5C+&|Zw%`9c{(NblIexS7-0}AaFC1^)b~W`&$G;=Ia=f|hH0^80 zrykew;icn4Cv@vjIli;-+VNS!lfQHRCkam-f3on*@pZy;$6qeIaQrsmrQ`o9ymI_* z;kD!U2~U!6VuW95`+Jg1KCxSe)bTxpXO15(Ja_y|;f3Q%g_n*$M|kDe3$GkMRd}*3>t8H9bNpFa-|?HY zzT@u}{xjj*v}b9Od|CMK9luX_GQFFRw%_*j?zmFni=@sW!dD63LHMb{OW~Idb-{A2 zGo!12p|pRY@IrVc{5Ij)c3u1M^;!GtQ`%nm^}>Is^=EeN_Z9wt@Lc$L!uL2s&RgL- z3STI^7M=;eKzO=+SAT}^b;2{@+WytT3)lXA!b{=dY1RJvn($4+X9~Yhc)CM3uD0Ly z%x?axglqdp2rq>nBy~;`ey8xQgkLJWcI~edKDuK!uC~8Tcq)9hJieb3p6}GP57Tac z{YZEvT-#52Y&ZX8XSUy4crIMqA1A!rh3yw>on1Sw>+?L}i-ha?yiRx_Jd^p~F1*^U ztE1=nw}hv=cf63}`jhZdcq)ARv*f%IuII^N!Z!+^B<;@LJ-TrZ5&kl5 zFZ_Dp?-X7%Z%o23J^%k*cqLrd=cmGF?A5i`^%)5V-n+jQztM$L6^@VHwpKE>L^JG4g>e~3*S|EDm>Y@ ztFP^k6rKs!_D>L=yY{Pvm#+N{!Ykps%eZeB{$1hIg@0D~CfB|ezRiB!JhlB_g{Q)` z{=?7hj`t|n{xIRE2_KPh&lJ8$xUT1=!VBU0x^s>2TKH_K^E%<_{@pzFdGsNzFI>-` zuL{qF&y+ep7rt7!UOy+D*Bw_OT(6UR3E$}IEEJv`!1L!^;kj_VK3pk$y>Ok+i-m6x zuJgZDcqM!Xng1PuZ*D)&>X2?e`$_w|!+)FW#wOuA3;(t7(L=lT(}ZswuDeb9?HoT) z_^ys0FMMCe7Ym;)T+j1o2w&v*tAwv|{N2J|DtwB}^Yg;jJARMwe{y_ixI3=bJHChT zHwxGD{|Mn596ww5Cmg?A_(tJ-$~<2ze3RpE5v{WLsk1@2KEHH7 z&r0}{q>k?Ana=6vqxVI+pXVasdfw`Oo`vv3rH=0Bxk0$jU-$F;jBtIu)BQYa;i=To z{XCPoTp!)fGj&||^UQ>2Qb+gmEF9PUJS)d_KhNZ_Zd^UjbwAH3j_ZD&+c>WKdCqiP z_w(G@@v|m(kNcjE>wcd5Ij;M89_+a8=Q-PP-OqErcQI6|=p2s<^`+1(?xbElq zSjTlg&+{DD{X8#pT=(`+2^=aox}J zrH<=wcaecU<@LtQ^<< zJU{2S?&tX>$8|r?uRE^$d4Ah*-Ouy;j_ZD&KXzRA^ZbS5x}WDJ$6qnpt@9rp*Zn;I z>bUObIXsWo0o~7Y)N$RwccQIwcb<wcb@&qlatAH zKhMf>-OsZ)h3&U{n7l7Im0b7pOim-${X8qjbwAJIbhg+1JhL;%bwAJKOmf}NvvT}> zGSA|%Y_I!yW@nM>exAu9a^26fa$NWGEY4Shg|pbOwJ|O{X8qjbwAJIJhs>U zJhR7<>wccebD&&qM#&$D;}+v|Rw+4wccali6PP^UR(?uKRf=i^+9A&&qM#&$GzcUib6NE+U^1KEP?-FDDn1 z>wcb<wcceWo)ne zdFGDmex8-%x}RsdoON_R&%$xt&$D)1_w&r2$~wBAXX&`^=b2p2_PU>E?zryfSvjuz zd8Svej_&7KIIjD7){g6bp4pYGqx*T5j_ZD&$qKgD{XBEWbwAI_aox`|UCBDSpJ(B? z?&n!MuKRgrt5`?(^DG_L{XCPWvAyo+nLDogc~*|=exB)S*3tbu3&(Xo&)RX_&of)Y zI=Y`{>A3FanXF}d-On?3T=(;=9M}Ck({-$)`*{|Q>wccK-On?gs5F-OsadT=(;=9oPLlvuCr8?&n!LuKRf=&tZGr&og&i_w%eA z*Zn-x=dzCO=UF(e`+3%m>wccu^H@js^DG_L{XCO`?R7uT+;QE{vvOSb^GvT{9o^5f za9sEEtR2_=JhSJsj_&7KIwccei`ZWG^UNLB{X8qjbwAJa#jK(sA9-vvOSb^Q;}${XCN!x^cC>?&q00uKRgr zj_ZD&x#PN@XW_W+=UFwccKwcceD>;AN&ogyg z_w&pg*Zn+m$8|r?;{TO)E^vC3)%}0CD5!|bMFq5W1hl9n>~0bW;$;YTjj%ve+NwJt z*^pqeSvMO5THEnbt1XvcwIW_RR z=XYkH|Ih#Ze8}$mo%5V|=6Rp_?QZtv8{+VJR>a}+tckRg3h@YXnBtEUYBK~~kHSw#JH_GvTgX@)NuaxWJ zpZI}C>etO{eg8)(FNi-uc}4tu5WiM=Mf_dL8{(f(o?W-v z^}khlLHthT6><1H8{+VJX0P@A;qxqr!{=EMhtIPi4xeZCI^Q2Y&w@C7o)vNUJR9Qh zd1kNo{o(U0h{NYu5r@ySAr7Bs_6FY{KF@+Ue4Z6?_&gip@Ofr`?fb*$SrCWMvmy?k zXG0u5&#dzO;qxqr!{@nEIo>w{pXV;(@Ods0htG32arivP-YD}yfA~DdiNohPMI1iQ zIpXkn?j#PM=Pu&#c`g!%&vQ3%_&mq{#?K!<&vD}Lc}@|B&vTAAe4aar!{@n+IDDRq z#NqSYO&mVYu{Zho!{<3p96rw};_!LS5r@xnCvo^ZcM*rrbCEcFp1X;|=Q;LfKY#c< z$BDz|IYk^k&pG1odF~_*pXV;(@Ods0pKX89Kl(moH*xqp$FBGDhtG4IIDDQ{#NqRt zBMzVEPU7%+?jjDK=OS_VJa-d^&vWc8e*W-zjuVH^bBZ{8o^!30>S-#cR!{?d3&2#uXYvS;E7JujK;qy#y z_Z&XYia30p`8#|)e4Y()_&m#Z`g-_0vv+w8pJz=RKF?y8uZPbwz1ws6JS*bxdFFrb z>*4ckh{NYuzQ@L1H_&jUk z@Oc&=@%8X|rrLA(JS*bxdFD6!diXpW;_!KvANBR{d1n9QIeeZqariuokNJA|Jk!TL zhtIPj4xeZK311JNXQLcHU%=;?{j=1A!{=ELhtIPj4xeX396rzN7T46K^#8MN_nN< zkHP1ee^L5?!{^x$htIS8lCOu)GyAgV@Ojq6;qxs1&DX={nZDvVe4Z6?_&oEk`g-_0 z8{+VJmS6Mr@Ofrm_Z&XYnmBx(#W#FCe4go6&*Af|h{NZZf792)=h+a4&$Ik@Uk{&W z)_4w|XH6VF&*C;;51(iH56|KAtcb(snSaaI!{^x$htIS8wy%fJGy6}^;q$DC!{=Fi z$JfK>nZD~ee4Z6?_&oFP`Fi*~8{+VJmjC7J;q%PC?>T&)HF5Yniy!!U_&n1OJ%`V; zA`YKte!H)S&$A&8pJ(|aUk{&W_G8cC^Q?)(=UMFb_3(M7J3NQavmy?kXZ{mk51(g4 z96rzTzoj1kpC){s4RQE9^E-V#e4Z6?_&n23eLZ}h1#$R1YvS;EWU=k~n;x4RQE9^I!Wu@Of6m;qy$t@%8X|7R2H6tckBFpB7Tzcw3n|xUwJ_sKF^x?i?u%6+xK~` z@{;&_lsClT^UU}0eZHmj74csxPa_do`@r?W=UEVk&$A{DpJ#R--v>U=k~n;x4RQE9 z^ZWWf@Of6s@$(~mo(*yMJhT0z59;CbEQrJBSrLcNvmp+jXSToZ51(g296ryAIDDQB zariv5`}zLxc^1Us^Q?%&=h+a4&ojHf?+>46K^#8Mia30p4RQE9vj_P8@Oc)*;q$DB z!{^x$htD%R!1ssGvmg$iXGI)7&xSaBp4kI^fA~BL;_!J^#NqR7h{NZZ9q9YR=UEVk z&$A*9pJziHKF{nyzCV1P1#$R1E8_5ZHpKVOB@eSP-#=4c5MQOdB0i z^e28T`V-%U{={!V|AT%12K|ZOh5p3h^K6L2=b0Vi`@`p1D9@5S;PWhrZ#h}N?ht>G z@|rk&o(*yMJky~vADkCH&x|;Ho;h*&JPYFcwO@8ezdtI8KSFs$e5LZ5_!{L6@%75n zgZ=z3SDq2SMtM&B2IU3uk0>vRkA4gvT~|eX^kc$^*TmuTY>30>nI7WjKiNJV^~s2z zr93ANpJzcFKF^Z)RobT_e!cRVIDDQB@h@n7dT9Ge`@sJBzVeJXe4aUR_&f{Z@OhTR z;q$DB!{=EOhtIPi4xeW_%+DV_&x|;Ho;h*&JPYFRd6vZC^Q?%&=UEen&$A&8pJzJU z&mTU|j5vIrIdS+r3*zv3mc-%ntcb(sSu4l?Ck~%yIzr|N4xeXE96ryIIDDQparivb z=!R+^=ntP~P8>eZk~n;xHF5Yn)5Cp#_&jss@OhTR;q$DC!{?cP%lC)RGbaw8XGt7B z&zd-Vp6L<3KYX4!arit-;_!La#NqQyzwP_O=b00S&$A>BpJz?{*fS*$Q|9}_=b00S z&$A>BpJz?{O7wrE?+>46P8>eZk~n;xHSycg|482-KF^#ue4Zt7_&jUk@Oh@Ae1G^n zbK>xMmc-%ntck_&j%0J$#(*>f!Tz8P&t*St*Ba6F$#onVc7%I`};Ede0}hF7Rs^z;qy!Pu@_&n#7AD|pQ&r*4=96rxlIo1t6&xY#Z^UO|^`Jf&?&s;hB z!{=F2J$#;(@+qAUe4e|NBj4cj%pNc2MLm3;bIMTFW~e1iE`vEe4gn^G9Tm^e4bOv(FZ=yQaSb;e4dSR>pDz9J_s{To&MAi%@yG4@js70sWy;y-c@1&+Jg*}TpXZy1!{@n6 zIrc4lo{Plc^W04wKF|A~A=hn93u{&=R=6^wYOaF!-@Zv@*|bwemOz;IPr6p zKZ*Erl}{;$pYzX@&k=u<@}0y#qI?(euPa|9{&VHKi663$=Ej+_ZtU}{lxMo0=V*Pc z9Q$pn@mVrhVY^EQ!PCSrLcNvsRvKANV}eQ)Qmu@OkFM;qxq&W1qw4 z`BLKWd0s&rKF?PWhtKm`;_!LCfjE4gZzc|(=i7+G=edhGe4g(o4xi_Th{NakQR47< z-a;Hc&(9Kv&-07K;q&|&aritN;_!KXhd6wmKO_#H=TC^k=Xn=#_&k3@96rx|*U0|C zet^&O{>0()93u{&=R=6Y=lO8r@Od6d96rxuh{NZ(j5vIrD~QAA`FP^+dFI67^E{n6 ze4cBF!{>P(arithAP%4BbBM#|xq&!*o);5`&vTCW)%!~hUqT!{&p#p#pXZB+!{_-j z;_!K1MI1iQR}zQM^E%@2c~->X^Lz_&_&ncE96rxlIr1Dn&-66e&*1QR=EULiEQ!PC zSrdoPGo9`G!{?b3htIPl4xeXD96rxBpJz=RKF_q)_lM6jCk~%yNgO`UnmBx(>FK^de4aUR_&iJE@Ojq6;qy$-@crTQ z%!$M2SrUiOvnCFoXL_dZ51(gF96ryIIDDQparivb1-?Igo;h*&JWJy6dDg_?^Gv_z z`@`p%6Nk^URQ_K5z79Um{P(2~IDDSz4?Ks@vnCFoXZb8&51(iLY|r8IOwaKgKF^vs ze4gdBuZPbwFFc3OGp+Odpa;pdR?p${ ztckT&)X}jm}dDg_?^DGy9J$#<| z4$tB9OqX~LpJz=RKF{*`z8*f${8G>1^Gug{4xeXDe60NooYCK(l$ZN@_&oDJ^gP%4 z^hcgwpu8qNhyE|{_3(M-f9!dM{(s{6jp(nu&>Vx$Gb^PY96ryIIDDQBariv*7y3T% zc~->X^Gq-D_3(KX#NqR-iNoiaz1a7G&$A>BpJziHKF|Cmz7Kq!6><1H)1Uf!_&f{Z z@Ojq6;q%O1>ifXwSrUiOvmp+jXZ~lt4}6{#arivb%X~e2o&|CEJZs|cd1f#7ec@$=@OhTR;qz>W!{?b_>HEOv zSrLcNGhOBD;qxqr!{=EOhtD&++V_Favm_3mXG0u5&wQuv1D|I_96rx?o!RML(rSt)Z&$A*9pJ#fduZPdGAP%2rO&mVY>{Y%G ze4Zt7_&gip@OkEc<@>wG2Lk~ z;q%Oh!{?b3htIPh4xeX996ryAIDDQparitN;_!K<8~ps?^UR3D=b00S&$A#7pJz!N zKF^9ce4aIN_&gip@Oh@U`uW4>nGuK2Gbaw8XF(i3&yqNNo)vNUJZs|cc{ar1^Gt8^ z^M}tfBMzTuP8>eZf;fDhC2{yXE8_5Z*2LlSY>30>nf}htA3o2FIDDQtarit7;_!Kv z#NqR-h{NYu6F;sEmeJ3r4e>LSr?>n0!{?b1htD%7ezo=~l;iyd*DJ4x--P)P|D5vd z9Wo#E`7ZhshtIPj4xeX396rzNoxVSOo&|CEJS*bxc{ar1^UU7m`@`p15QopRA`YKt zL;SW!%Ilcz^8MlSEQlX?q<-Bb{wU=Q@h2$H-tGIJue>0BG5QmKA^H=)7XAO;_kS1q z6aNJI6TcPxiQkF-@A3T~aFnb=LHtPN74Z|5H^k3Xp1t>!Gws@Okbg4xi`PKlu5>=Q&OsKF=xQ@OjP=htG2-ariuU5r@xnkvM#w zyNSc+Id+quKYX6!#NqRtA`YMD9C7$OcM^xsa~E;=JQs<>=ee6We4b+;^7Dt!bDTJQ zo>Ro(^PD3NpXW~E@Okbc4xi^DariuU6Nk@p?8AQk@Oh3ChtG40_-y+N{ZY=$5r@xn zCvo^ZcM*rrbCEcFp1X;|=Q;L|e*W-zjuVH^bBZ{8o^!<1H^UwHt_&gip@OhS>_4V+1X8-Cre4aIN z_&ke6Uk{&W`kd$Rc~->X^UOc*>*4ckh{NYue!X^K6L2=b3%W_lM83 zAP%2rMI1iQhB$nl*|&Xv_&f{Z@Of6m;qz>W!{?d(r|%D+XF(i3&x$yFo(*yMJhSik z{_uGg#NqR-h{NaE5Qon*`>yW~pJzcFKF^9ce4Y()_&l@k`Tl!N>d(c*4_96hpHSWq zhtD(nFW-M1`V+ql{fS?L{>0()%)amY-;Dmmzl#3E??8Xz@OfrG@crTQEQrJBSrLcN zvmp+jXZAzsUv)p-rv#s8O&mVY;&xvTpJ)1!=kR$}#NqSIf9&hw^K6L2=UMLd_3(LS zcX$q;XH6VF&*CS(9zM_X-=4$gSrLcNGr!ZpJzoJKF|Drd_8=g4RQE9%U}3<_&l>;dJdmwO&mVY;#a;NKF{=P&*Af| zh{NZZ|HjwD=h+a4&$GPS*Td(TrBl0|kNppyXH6VF&tfEUX&XyQ|1{zAEQrJBSrdoPGkc)#1D|I}96ry6IDDS@ zfxZuXo)vNUJkx`GJ$#-8ariuI;_!K9W4;f3o+WYkJR9QhdFBWCKJa-~#NqQy2m5;X zJPYFRdDg_?^UMzMec><7n ze4Zt7_&gip@OkDB^?l&;tcb(snMNY1_JREmpJzcFKF^x?Q77r&!yoSZoTR)Ye!lXC zIDDS@5x&ohwZ0<$TIK0szWzPR3*zv3*2KT1_1VLHpI<63iNojF5Qon*|1IAKKF^9c ze4gnMz8*f$f;fDhHF5Ynv)`6JM|ZDgO7M9W#NqR-h{NaE5Qon*%Y1+MJPYFRc~->X z^K6L2=b1gy_lM83AP%2rMI1iQhB$nl*^$0Ke4Yhy_&h7(@Od`G;q%On^8MlSEQrJB zSrLcNvmp+jXLhvj51(g296ryAIDDQBariv5NBREnc^1Us^Q?%&=h+a4&og_p?+>46 zK^#8Mia30p4RQE9v)}Rk;qxqr!{=EMhtIPi4xeXsjPDPhXF+`bT=K9Yo+)pLuTq{p z#`m96UJ&1e{=`f4Cw?vZKi2o(h5p2EL4V>6`V+qk{U7K1!{=ELhtIPj4xeYEJWKL` z&olk5^aqE}Gb8>Y^?ByR;qxqr!{=ENhtIPj4xeXD96ry6IDDSzSU-RGJTv0(dFI67 z^DKzN=UEbm&$A*9pJz=RKF@|Ye4c5UpFez_8FBbLbK?89KSqsyk5&+WnDUbNr1FaR zS;}kTh4O~@^OdLL{QR#{o)N!Zc}{%v>&0&V#7BQEKjJ0v(O=7qctw1#b{ZpI6CZtB zHR28N(bEx6<9`09E6<3-=b01Vq4fpvE0veTuUB3XhtIPn{w1w%h~KU}O|+l158S`- zd1l1n^UR6E=UEVk&$A>BpJzoJKF^vse4Y()_&n33pFez_8FBbLbLIH|!Qt~PiNohv z6Nk?;Etm764}6|Earit-;_!La#NqQyD|~*>&KF^%^XV9NGe4aIN_&n1p-yc5D zocOV4>iQ6e&$A{DpJzJJ_lM6jCw?XR6Nk^UCJvuxdc5xspJz_|cJwC>pJz=RKF@TL z?+>46P8>eZk~n;xHF5Yn(-VAu_&jss@OhTR;q$DC!{?cv==;OxnG=W4vm_3mXH6VF z&-5hUA3o2VIDDQZariuI;_!KXPdWTT@Oj=z96rzVWSI}@;q%Ot!zTux=bUo9KMg+5 zN;&&Hvy-Ji{=Nb}&r*3k`XbXl;PcE^OZ~Xu1fOTA{0impd1j|b{ZY!{^DLCFRSutL zt(<+Hjq+UU;q%N+mHzNb!RMJPM?HL=CDp^{St)OCtL_1x=WgW(D~HcBJ5A1udiXr& zl%pO#&r10*+6O+*Ta?3p1)pa__3(M_Kl(f!UOmE%5z&vUnO0CK)uIm7wXRaLU2A^j^ z_3(LCR1cqLP4)13rt{>y=ntP~rhH201E1%da^xF)o)y)@=ee8e;q%PSm-C`Oe4ca4 z(H}m~O8E+%4}6}D@*|YP=b6?@f7HY0nJY&&z~pzwxW9YJZt6b^ZbT#_zB_j z+)efHc^>d|nJ4Pu^URc^KYX4~pnCW`pQ3ypT?hC)r<7wo;qxq&tCikcs_}n z=aaa3K8c&>Q#tm(c|M7o=aaa3J};8%y02cBc|M7o=aaa3K8c&>Q#tMn^L!FF&nI#7 zd@2u~PvYkJByOHh;^z4zZk|u#hqO25Xg_3|WZf>+b(>ILDbJLjqr6s*eYjP5qx=b4 ze--*~mj2k!?@~Ul9QWO#@?80|w9k)}SIY7I(gFL*{1=sD-#%7(x>(M;O#3`l`M7e- ze~a={mE-H+mC6g{nfAF(c}e^R9of=frPQUMj~v|GDy) z5;xB$ar1llel?4iJRw>xOqN_o9C0bc|M7o=aaa3K8c&>llay9%Q{~|+&rJe z&GSjzJfFnP^GV!1pTy1cN!&c2#Le?b+&rJe&GV@od2XK1t+JoN&GSjzJfFnP^GV!1 zpR>Ndc|M7o=aaa3K8c&>bDQsPo=@WD`6Olel?4iJRwhyYFwFPvYkJByOHh;^z5W@cqs6N!&c2 z#Le?b+&rHxOqN_o9FZSzQ1`siJRw>xOqN_ zo9FXV-`_l+#Le?b+&rJe&GUJg?{A(@;^z5O{$BmQ&OD!&OCNCaeEy;5=J_OUp3gt> z_2&6}f#>G={A16}^GV!1pMT=(>7$Zl2E-{>*dpd=fX$=gWM(c|Kq6xp_YS+;j7M5;xE1U-)|S zd|u(Xc|Nc7+&rJe&GUJcuQ$)<)t;N@bEoI#`6OH_zv*eZ6@;ul3wKpRe)UJfFnJ+P~Nt-52F`zTP~auk}3F z`t&-_FHl|+pF{uG`+DK$2_0J z&GY#;zTP~a#Le?b+&rIe@_o$nN!&c2#Le^hX5Ys=pTy1cdA+YU&nI#7d=fX$=UaRq z^L!FF&nI#7eEzNPW1dgq=J~wA*PG{)xOqN_o9FYbzK?l6iJRw>xOqO`=KGlElel?4 z|IXK&=aaa3K8c&>^X&^2?+&rJe&GY##-^V`|C5;xE1yM4WRK8c&>lel?4|K9g8&nI#7d@4U(bId%S?~y*>=J_OU zp3nFCdh>h|H_s<=^L)O~_c6~War1llel?4Z}ff4 z^GV!1pTy1c`9a^uJfFnP^Z5_H-aMbg&GSjzJfAoDKIZu(Zk|u#=K1`P?_-`%;^z7M zu&+1ICvo$95;xE1Kl(oA`6ONCwT^L!FF&nI#7d=fX$Cvo$95;xB$ar1l zxOqN_o9C0bc|M7o=aaa3K5y~!H_s<=^L!FF&nI#7d=fX$Cvo$95;xB$ar1nB($C*K zpTy1cN!&c2#Le?b+&rJe&GSjzJfFnP^Z6-1fAf42H_s<=^L!FF&nI#7d=fX$Cvo$9 z5;xE1zxer^=aaa3K8c&>lel?4iJRw>xOqN_AJ+!U=;zah_!-L6r~UlR^GV!1pTw`$ zK85n5HOH=3UJ<`Zc|-hj%CpbNe9-5+$_wJZMt|bw`6O_>fAf42H_s<=^L!FF&*$fSfAf42H_s<=^L!FF&*$fT zfAf42H_s<=^L!FF&*v9>{|6i;`@bN5r1FaRiOL(|=PJ*>==*O*f8r(j6Mr@O6MrZA zf64d%1o{*ICi)XM&nNK%kCt`FzU=!yT6sbIiOMVDYn3;|wlel?4iJRw>xOqN_o9C0bc|M7o=kx1+{^t24 zZk|u#=J_OUo=@WD`6Olel?4iJRw>xOqN_o9C0b zc|LFT^Eb~Yar1lxOqN_o9C0bc|O1C=Wm`*;^z4zZk|u# z=J_OUo=@WD`6O&^4|eb3GFN!&c2Kk)VD`TU{h=J_OUp3mETy?H)~o9FXKzTP~aKla=_pTy1c zx!c#9=kpHF&GSjzJfA=D_2&5`Zl2Ho_VwoZywh{@d=fX$=TCjTc|L#Uxp_W`o9FZA zzTP~a#Le@0m#;U^=l^(ao=@WD`TT{iH_zuUJvYxMar1os%GaCclel?4f9>nd^Z6Uk z&GSjzJfC+<{n7gUo_Riro9C0bc|Ox=T?h0r&nI#7d=j5JPV%!MZl2G*e1G$N5;xB$ zar1llel?4_woJB^GV!1pTy1cN!&c2`}+Ro`6Olel?4@9X=U=aaa3K8c&>lel?4_w)VD^GV!1pTy1c zN!&c2`}_WTP0D^Qh##)JB0izKA#R?}`}zLs(4Y8a=ui9_^e1kf&-?rSH={rCucANk zJJ6rFc|ITD`^Kf5po=@WD`8>kco9FXko}1^BxOqMw?(5C-ITC}kkE;7K zCG&g|H_zuIe7$)-iJRy1w|%{NJ~PkF^GV!1pO5tQ=J`C*bMt%>H_zu$zTP~a#Le@0 zw68bM=c7C~&nI#7d_LOOo9FX)JU7oLar1m0k#u5kSSo96i>Zk|u#=J`C<_c6~War1l}Cvo$95;xE1 zxbI`0PvYkJByOJ13E#&&pTy1cIqB=o^GV!1pTy1cx!m_L&nI#7d=fX$=L+A)JfFnP z^Ena_wGZqc^L!FF&nI#7d>-%nnCFwYc|M7o=ko;L$2_0J&GWg+*PG{)xOqN_A9a%c zJNl;^!-Gh@0p0@xITCwZ0<$TIJ~^U;iHE1#$Cy691OgXHW2beyO}9Zk|u# z=J|Z0?_-`%;^z5$lCL+^L!FF&nI#7d=fX$=NZ1g zc|M7o=aaa3K8c&>^Gx60JfFn(&m|8l;^z4zzDnz}vwZ(4W7s2yM+&rJe&GSjz zJfFnP^GV!1pTy1c`7}R&^L!FF&nI#7d=fX$Cvo$95;xB$ar1l7uVdXXP(c3e+_hk_u{W@mE)46{B_i3Mw zct(8mWBZ8b#7EyYk9a|Rv|UHMBtE0OBK`v9HSt#|Z-~D`c{;ECqpTy1c`3&FRJfFn3qCau-d=fX$=QDkO^L!Hj4Ehr{&nI#7d|u%Do9C1G zv1jT&CvKik;^z7MJ>TCvpTw_3f8yr(ByOJ1-}n8^^GW=6^e1kfPvYkJ`~%Rm<>vWReuZ-Le6E-J_U(w>!#tnL*D5#9r}E(WRGw?Sc|JEte|V+L^Qj#5=J}+0 z^L#3AZ>#QMo=@cmD>u*Q=nG=|K)rcBm80G~pURKXKIZvUet+fW`J{UDd~THUqTW28 z%HiQO&*w!_zef9;=TkZA&GWh0*PG{4IqJ>xd9klI&*yW6V|~o?sT}KLo=@dDdp@^F zAMA7Ud~Ow9>UEjtQ+cNRkaHyGYvtG{%at!G-&gC+^Qj!(2J?K*%6Z}OGtZ}T?0@ro zZj*ZKfAf4Q$NHG(b5829KIZvUj(YQaQoVUTmE%4&&!=+aiFrPsC+E#|9nABo9P4JD zPpUW1C)Jzhlj_a$IWOl$fAf4QpVIl5=TkZI%{-q}Z=O%8H_zvGIWPK~=TkZQo99#c z3Z0L6K9wJ#+&rHP(jWEa`BaX2^L$eM{CTo(E2=lor*e2W->UWBP!2z#c|NJ$JfAyc zo~Sp^r*iZ+&nMNJ=TrGUx(?>~RF3sD&!=*H-7(Ln@^S5Bp3h5Up16<9^Qj#B$2_0P zaUYrIQ#ta}JfF&uljixPKIZv+zTZFQ`BaX4FwduQ%*Q;R$}xZQd@9Gfjbd@%bjRJg zEcW4kPao}*gVO#lllkDlLpy$G%C4FLvX6azj%w>uIyfCh^((qQ4^GDrf1=ip5ufV# zSju1O=d-@+^U#!b`uSYe@`KX@)8e7+Uo^Fky}LhCdU?n7$&wG>Z+VsuOPi?A>jvuI z+48ZrehbyVZ=n9g9X~LAQRjnG|7@WClLP#FEgzki=lRot`ujg)&(Fd*=jh|%Ek9`Q z2c`WVEbD_~j~?;%=k%l;U%ytie6*f#+?IExFF035T%i1-lY~EBgXuEmgId(ta|7|TFONWQ`f4|m0;%2G8akRnP$4xCisI9N` zy!#7Iw{-RTWXXrG5AfXseBWn|*7LA5N7psh^3l3|`J;K)9qabuuFnI~ruzu*4vzj< zKfkbjVaLXe%hspq>8G4>-t?NY&R;t{oi@zO&s?;5`@+op^upHZ^;@>h&TMZhHf)=| zXv?+>*KL{Ju&`}@`}DdUm!|dGw$5#tS(w?d?D*v?SN0c8Z`?e)d3xRa{JP7gXJ!}X zFH0Ne*KM7d-mqiq*2~%~}_CvVs=f6D9`^V@dJZEp)E29Hd3M`m|yT|Il&?9vg_=S?ifu~Yt^j!oXfxK$^j z=V==*n%O=zGrxLt0TWBl#z*$_<0E^z(d;MNek*Y%n*F^U8=8GPZeS*^qnqRCi1p(m zd%BHgzk125wRBWGc2DE{iY)2r=14u=EaNdfpY5w9UH80h14r+9tj;!!U9)B0ZHnQ7 zq5jrk=oH;ugH00p>rr{>29DnIsrRgR7%p?$v*^PG?I}hXGr98k>6y9BtJ38&^V{}3 z+q&-3HEYhZgQLoo6O&6S?U_{C)AgI@*Pp*>^Tvg4k$-=3`joTJSe}S3@1-ky=?T5` z#9lfv(U1GjH_?B>6}>%<@1+yt{kXr!#H!xv$^J!}>_6r5{!{k1ZeOy#^`GqTG1=c_ zdH+OK^k3x4{!<>`f69se-jn^kSM)b&w{YK8p3py&RsB~vG2Va9iGjsh-rs#ifA>}W zGoKiEfhGnPcjAQpOPw6=KkekeiXGp7tta+(pBQ-YCI?=o$$=$aKCm|?1~%TriT!K5 zeBdP+#Z})%SiY+Na=Y#;dc!HuE-M1i2G02T}UYIE;~>Or-=J| zNH~RR38#qrPbuLPs=Lh@sOu)j>NT7qA6PL7r%*286tIR<;2KVm z4=k~UQ>fQ)id@1ea1E!xHJk$1a0BC9 z!YN=4r@%FwA|F^{4X04A;S{-qQ{Wm-fonJguHh7T7f#3bhEt$jRs`CGQ=nZq1uEeb zaTiVz_n)u}mQdU!MW7N+5%>3ya0=BDP7(K?Qo<=zcexU%gj2wBzeU{NM8YXl%l#9u zgj2v0P610e1uWqdu-s|^OE?8A;S{jkIRR@pMLw`t5>BC9!YN=0r+_t_A|F^>4X04A z;S~A6ib*(yatWt^HJk$1aEg3ji8Y);y@pfd5>A0@I0dfZ6u5>{;9WSK&>K#Hc3BZ< z7fyk8;S{KZQ^Z|3McjYFE?7cwmlT0YI7QswL&7OkOE^W`e@Y3bP~GK9pb}02%l#H{ ze-jC(P%ZaQz!FXYOE?8A;S{ihQ^0bo1uWqdu!K{0@iQ}T*E2yfhE>(3iTRJkxMuQuHh88hEw1gPJwsf zw5m6p0`0OQ&@P+;?ZPQg38#p=aEiG9gk7+N;w~uym2irpufyI(= z3gr?`0ZTXqtl<>-z~X8+g?bIA$Ol$T!YPzXI0dZX6u5>{{ATa0*!Nw}|_jNH~RRxqkwda0*z$DPRewfF+y)mRl`g38#Q1oC20R zCtwYy$Ojfn!YPzXI0Y=>6tIR<p3vA;+kY}ghpA<0m-s>K*KB^&@_t&G|u7y$+Hl15-kBsvIH!77O>=5 zz?x@~51drqAvF=|C5Qr+TnSk7Eb@UinrES2^DOd#^J<=jddZ=HHO~UqyE5{DKALBt zUhlEMHO~UqJPTa&EO5=U!1aa&*A~ivv2@;77ifK!U5!&KQKAn z_g2rAcFE%30NT>-&JVQ9xInwRJJ2rp0_|?eK)W;yRAMROp7)TpGnRCS)&18u(SLz` z?>HUx?!QFI!Ej2st0L~cof-h7{`b6A6LAm`ywT5KmL;GsrRn|K^_8C}4O`TZZ_eRpuR+OL! z^_q{7%U7Mq2VQNBl~^xX7r5qAtvu!YR;hs|VVJ zQ=r|33A78RKqZ_a?!qbJ{>z)_zdi}4*rfjoC7fb)|JBI04b}3kTg3fKE#VZa`%fw1 z6sjehBJO|1WV?oHxvL`XpNZ_rP%YsUu!K{@{c9rO6sjehBJQ7{gj1;2aEe^QDe{3= zS;HyT4=kgGQ>>S8id@1ea1E!(C7dE3c(pa0V!eb@;2KVm4{QVtr%>PBz5YE`2&X{1 z-4SSa>jv6w^+3CD3bflWfp*~(sDx9*T{uPDe|Zv4vAX{Pi$#8cTS;N!YShZQ_7Eyp<1?U#QjSpKShOV*^?3XUyg)RsFojk0+w(JSi&jd zfxXs06Ah=(MSu8m{55*Kmq_Xnzg7+8R!=kAzd;8cvZ9 zYy=IbP~YuT{~jxZQ=r|3473ZUK)Y8v&@P+;?KVuHT{s0Q;S_NfP7(KCo`h4Z?!Q0@ zr&!&8i4snsTDEP({S%bU6RZ1ADd7~VC7dGeKc$3IsFv*-asN_DIE8B2lM(k{j@+4{ zTEZz{38#Q1oFX3BYyC6Pa0*>CoFX51l{K7Vy@XTb152Rc6ze6N0@rYgd}x0SyxJO0 zv5$mP;2KVm4{QVtr%>PRRR1;xgj1m1h77a|r$D<`JJ2qi0_`?Tpj|ixD&Z7y7fuoP zU!H_htnR-+38z@ye~A)Kp<1?W#QhVL%@eEpPbuLPswJEv?mwl3Q>d2h8gc(pNjQaS z*^?3XUyj_Fp<2QzUMH4X04w?Ns``AJQq}Zc9eoOvWGpV$0zldVnfGQb-}azUiz;{t%qvc_SKz?iq5^_UdFDx zhp{W~W$f|yF!uO+8GFJ#j6Gp+tgKi6SR5N#OMEjpyjH93<-DtU=Pc(P9xLZPv3D$v z4b544_m9P~p|SQwW%z>cVdqNswxDmc9lV!w_fK3WcH+IPcKc?UdpP&-Xt`$wM%%&O znRmJ7f*`nf0Z>(t|_imbnd#wu4)?%ulxe>DSGXG7(=plRvb2^hIvq z*q&h{A)M>DWLP-1XV}P4H#969(_y1EX#Ix0!}^Xb88$S@Zds}2o?&7BxVCm!du(p> zJ;2Bxx%7LGPV+Q$WX0f^m4io)A3Sox;E`2>M@}3(((ap~X}96tbEx~_p?4L!BfZz! z9qGN+?nv*oc1L=zs5>J2eUBD&0$R}a4s7XE(1mVYw|Ta;hSFghHa&g%c_%;ZwCU5% zKDD)Rt({(b^6E9Gjn1%T^M&iD*Kgm^sZrCq3%AWL!)1h7L);ZWhy{YvseEk>X2D8|UUX&n|4_ii@^xo0W=g1vYHo zHoa-x?1n8fY5J^l+5;Ol&ra{yKC>as&aXLj>Xd0)%8`_{m9x&wuWOyK(x9bIrt}m^hYnN_*=6Ta+oOyZLxNUBRE_r+3Rc?I#{N{zQ zbZeh>ioWpi(kA%Q(z5NBZCzM*Vf%4mUOsNZXYI1i%+IA|v)dMCmYux%tYa6}U8K)0 zn%%MN!X2BpY&drFhO}(-Y}2~!o6@okm(8~Qe*5Nav+l`sdu)DY%ev73 z{cLW_LR!|X-m-<6OWV&!lHK;$wr-a!o7tpV-Ax_`F>&GZ6oOee$q&^hmi3-}b7#^Y&Rvs}#Wd-of?{)idL18hP0FYyZRewR`97 zvy|2<$hv2H{(zqvWTO3K>G*}c^X|}sjz7A4w&xEXe`PjSd{V&n+tF_^!I{s1}zgzied~1CV>vvVlMr$&f-{=9q_9i_c z{(S^FDs#o>qmM6d|64kKr~0{f>iAtti`&oP*T=_K(s=mHbDhvD4)m`W#-Z(XG#sk+-!=A2+m5mX3#SKYyt#z}lt7?dQH* zO7Exf*Q&4oS{=V2)37dh{Q>IslhMB!q1!#--vJoAO3u&qc#e;sZpXIvdK-^_ci^!9 zzo^%b{fT*FAAF}ByY&2bT|LwF zz3b}#+x7o|#@oM(pc{Bo*KN-qI6pq#N#pVF3~bWz{Cd;NnSRlZAN9iZm+HgcqT`R* zbL#H1jGmAFA&ODYapD+{fByo9aejOp)@m+^~_>Dt&IJpPF~p4aa=&zAAGxBni&(g(&b z{b<>-q;TqeGQNI>R6epj_PF*&#lAtVkMaqx{gUBn>;Orw -#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; ipIDrWS2<{dfg1bYo-~<>LoZ#;6HaLUB zoqYSAbN0UX{HXP=)o*oGSJhfwPZv%2GbBdHAqWZeFyqN#zHhqc{9vn+tZH8~&ON~L zd7we6+~?z?pK9~^RZZHZn~?>sbLA|l%{C=R>mc)iOstEomB-ew9s z4*Ctg1td@ZIa!qjCRDi8u=t!$z^$(vS{fNAQ7h_{-wi7VN$nYEvIwbX)$2dLb6WHp zn)P#P5Ll_dV}N*bm#=**q&Q62*x$a`+;--WIa6bwksptYwFVq+EIcxpae(f4-#J^% zkv=_MR6Nbyeo_v}3Vvv4JAEYW7 zIkn4|Hk!*X{PUr>YL&OSC9d8m>xtldAx}c$xRz2vlw%=SbIoAw<63G*8ny#VOZiFE zD-FqKl03v?S`yM@8j^Xrp9@M@hYH6JnK^Q5=jHS@=M}d!n5i`PRJ=5_3iLjCX`mLx zrB^%kOUX;ES!xu>B@DQiFpk9~sKb6}=V8|=oo7Z|_gdM|$cYa+)eQ`4S05OjZw=(p ze61XNCY4z=FRCWoIly+VXTln(q;OP+eCgGj_&<@Rj_M6TpU$=9W1eOvc|)F7x;0BBSCE{1 z+GO4`y_BoLdeQOcGCm&TVF#$WM5g52c{Cx^A@I9|X>-5XwV|i*?onYe#-x!Wz&fR( zCF2Ix^`_v?Qe-wY zry=*sZo<1S^5R=jcn8P5W*Y;>gYJhxk3L$4dsNPItLKw0_|Z*Qn~geo?dd|j?-)Za z|7b7O&W$ugC;$!`9`z_w%sNYG+{(Xs0dxbxzD%iAHvd>3TsVD^aI4oI6z$N3+qs1U zS@Br=769fhV@r}VwmiO-(Rw<#3pbiQl@X;;biie^+Nx}FRi76gpSuybyIu(oj~P0~ zNPJfiTZ8*EGImOODdtZ^q`%UEoQTD=8~TfyASTn8c#!efVHo~E7X{_^3N-hLBGytKRN8W8yp17Rn$qE zn@y+_7e+BA6zLDJwg?_UvU+B@P?{U*Q$utasLiGlJFLsFf9mkbeZ#kn*9?<#9;P;# zL@Y*N|BR7xV|+07b2<_Bv-VO=25gW^cb-miS>c8lN^La455spGxoBQ8iokp4Hfv03 z_Cg^KyD@K#y_JCSqnvlE4P#d9>O3YCFM%nny7X!NSxZ)9m13&!tg${WgKec0F0$oc zBZUKx+)ETTj?mUVDf5F06J^Rd3dLUyt`&skc2+kDEmtsI-l^En2P-=+UfxKjl&1ni6l8>9q%8o%cC!#F_p3+7*i>G=V%aWR7pdMk1hKHbNSaku7GV|-S z=pQ+Z>O?rHdhUDn`-O?-%nahB53Uj_P}h2=B>Cub;b^vE1^5U!{YE%u!v72W$P9cp zlnjF2QcV=qnic6*leH*!-ruR?;NqBFZY~StxPAPcUm33ZNBce%QV6ja8tC#4Bwe{9 zydg3()v0K>xW8qZa0oVFNIYFKN7aK&epMv7tlZ-9xvAC!9aXof0Q-1x9ICBtWuA#|k7CkHa`lxGqAJ$#Lsrwzh#M5<48L-2<14{K8A zaV-lsS$XE%tPv=7PR!Qq)BHuh=hfK3kd;LpRHnYVeKpMZ;6M0>wMD|h7{piBWp?l2f6l~d?*DLArlxSmT|WntTVwj|AQ z$#iCN6|!QmF@1Qkhv`5QoOCvob-|tl4Cl~1+hk25F)vkXO-QPXWBR(S`DSHV8Y}Ny z=<_PaLs-ZTgR-sS?WwGhr7s&kWsWjx>d*G|YxXC)_K2p0FTVCAR>f1#WXtuq9p+0v zfOZaTGSB5|^`2ghxKjyVO`&;rcki`LZh1Xr&6GL=Tl5^4Y&Fa4AbPIjGL#{DIKcte z&fDZe$FM@mA1+Rh%#+7YNBLgAa9;1C(+IanZFnp;~+$x6PM5j__RPNLUJ>ANUMkfKINv^y%%~?e3^ybeiSPl8kh6ysB^HArvQn`vgqODiu$2}L#`zVCIu$}Luk$m+2;s#V8|WDvwW$5nr?Ink8y zdoPpBtXXm-zMC&J4nJVvB zfj%c5{!DT8J|%v~DaMt_*;j|0B-*d~O@;ER3YC?ujmuI{dQulm6xi4zth;@=a5=SP z$WS9ixFX+)nf(r0|4tB$8m5`qwe5Ut*~d}Qg}qgk!3nZmQ&ax}Vng4lt9Js`l%>zG zW9+af1=1&nyqSl~+50O3Bh^PK+R>zGjA}q>-^lHE!d{ZES&hsn1iU> z1)VKYuM_*GmmqEFg9m*z%W~c&%h+95?C7twqJ@R#`fB3+g@qRWoY$6Zy6HVX6GnIQ z7iN>mq>5qcd%1~q#!lsyh$S+o)OXHK;g(rIJ5mGNoMT~gbNMdzk4}yMrW?i?8e)@J zX2I(bMSLj`I?4!DER%LkPEnQ*j>j;cT!BeKLnNm?X9q!Oe-;$-Nx+OqQjoY<`=nB%B>Fv7j63@}K_geWtf8yi^8 zgAEMj#SY=e)~Spu!*nM4MXiHhmK1j>hwLGg3yC;m7H0Ay0_ph?fe3<#@WO~jK@8UT z@aIqiK zC2N>_3@Y+I@};l)U4XlgsYtAH$jDJ5D1tz$UUq3*d1P0DRVdd0zXhO|T^k#T^na>C52cf1 zgVJHYg3{4Kk-5u+0Uv!)5miA0XdRv;{(ewa3{D~92Zg26^GjGW@Joo%^P|!8!$WaT zxlZO|7|v+v`KgC|@ozX^yr8tc3yJm*@9|)OLSD&%L;rKj2akk&5gG8RybrBN%rbQ> zBK#fmAFBicvf$8hgtos7_?ZmY_mcIGd(0}*f!`(6-J{E0$R84cP5Fum9T68o2+;A6 z(ea=l1`~X2N<&#tcS+vtoIutRfvE!;w7hP(AFJ%92$5#5eO1Nhw7nB^OGU4Mm#=>L;?+Y+BV8w0 zA7g^s(5)H%*=Apr=EQne(LQxESOi?;@-+1HND%UtJF?;KO|u5QB|OR|E-hF+9Q@^* z_{4fLH${}Kk@d`u=zfc)_P#+L&BxLe4+omxNe2+MxfP$9W!pdbPSKh^%4x;G0Iq{7 z(x$E$>h_NRVsR%!nw{Y6xEu6V}}Y)Z`h$$80JBE0ln zYfWB?%&hmB-8z1QtVe`m8ctEQtbDbs@GRpgSz0}jl3BdYEd4{UAyM}cT8E*}b7SF?7w)oDy+=_5`2Ha7 z7hHui)!w}qCFXtq#m4chU}{yt3!xZhB}iz5dSOUUkGbm8{O7O2N<-kJwJqGwZiGu# z>3ojBkoruX2uO(lx0OiX1KN;?VwY$0y5#=JH~w4+=ppex^jSrse3wx#*Yhfy1WrC) ztzxzG|1oD|(tk7Oa!+lo!c|ngV9yB~1@2%~yyP7YfliUtxUUE zL)ZF1#LBk6t+RhzTi$TNM4dTWM6J)NDEfZyV37p8%>9wTg+;YXSIXeXwu)p20yt$I=SKX@BnjDQv5c^n&ApNw-K{l1Pme; zz<2jp6-JLgFf~Ua7fcv^L-O*O7tIq(S3i$ z{?ffVBgRsSp(8!;nS80Z4gug}F@e8usZ1sT-M_$P>)*j;q&U29V)xYnjODbq{FXKGwR#`yi!E;&g_)-6cxd#(mb$%`11 ztv>{*47B1gbbY_nJ|%nTaPDo)v!^l$GmX6f=}o-=5zM{7TZ$8TCGLsV!uu(V=h<4E z^vhN8_o0Dc+4;vcGviSZ@_P)W?3(Af2+q(%aE2~|GYpCFO#a0g9n9AqG&1=44bu6& zE*)-wAXNlHFe4Cx8G#VYlmVNmZ!3vB)ow+%y~dAuJTm-Jf@oexdr!8eQ$1 z7?B!3z1ly$)+*l@{@BJ&aI|J@>q z7}o??;!noq;!pgo;=!Tu|7wv;$p6tIu>yDK(L3Zz(K~QnVRYnRp#0M!@zDOQMM_A) zaATzq;4-?rT0p$Aimtk{8nc1~(~O0q{e>5V$7SlVWhX3f=pq^dEzl8YfyR%9#t(nC z+wzsNhVmUd`l6UGYA^dnvN>gq0Sl7B|5PO&DTKKkA)!bizDSsTzs^2AL&if?h2WD; zRj2+oT=X5lLT&XMgJaw(K|#VQ0eb8zLCosxYu>J2sI7QnUqH<2Hy+gYo1HQ;;CvX( zd+ayl#|cPR-a~AawhJRR<@e3q{ju#t`f=CKNLQz6| zQ7~01xoOi5PdPH%j)9i;RcwuY^5HIX@We; zvZ);;P@#l#fEc_o52Y(GN0J!O|Mqqq&wjc`FQDiwv7hx?A`@WZy9_k&x;mPk{koDB zM#25O!JLz0BB8-{rLeHIb$*MU@88C-u_lNy>|DVsw`y07cu$^my}+POid3TBA9G-X zJGtifPpUh5h9x*Rc}`kwSIgXvBhwxQ)oo7}keN7 z-*KQV@_pBZ|MK#eKg+b2jnlXZ2Dah-J%vTA3RH@$$_%boL|G;>umYNW~jF6Q~O=BsAPit4Olwn#eY84+3Ze1j6?Nv6{o zw*NGyX*#D}h4mSN_Q5C61td^dV9ovC$B9V^oM^5r_12@sHq~Ck<-FyrIv*C*b(R)KVD_mYS zfU`aJh)15mo9yndS(DPH4R!&-jy$~j{@He7`D)V%YNmqmW-`2?+S}A|k#9zEac^B| z$X^+LOCBZo{2b}$axWyMfL~bj1LOT$o0;4Ne6^)#LHO&Yy}G^hJa{Rudc((3q@zh= zH_VF->V7hq*00_3wq|jTKhj9aslxEP z8B9yLF2E?*=uMo_u*=s}gw8-(ekw{xN1}U~TLcD`blTMz6 zO;6?Ll1oXGs*TX3jp=KqQMG>8m8yXAbove6cL8vNa^9hDQ82(^7E`>y@1_bS3#DIslhjw3_qRM4j?Bk!V`-2T5i4Dq~MKQcaI>@C=?YV~WJa@z#q*82_TnYUS{K&;s5) zLkc~t%q8qudKb7C5stsJ6z6l-51fDKn;sX@j1qIAI#n=v4k9eb_I)i7UavkfLC@oa zohhvkKUik$J(s82Rp6FwN)(i21+s)wtzaaGnMam9FQO_&oIBY1P$7ZG#ego7N}5_o zMc0fq?bnK5KO)w0(L`)Lt%YO3T!ofqAQ9yV-f@2nMY-+B{_j@lP4uyhrQ^V!HLmbQ zPXN`%8YPfQIi1OY$D#GCrEb%VNb<)(!AXK2@;2DqzUXy-mm#NC`p^!} zdfTI>y-=cqkXWaS-qL;1VT4}fGA!Y(gU6F#x_Y~wM*HO=sBy0G)X-y}WOI$-2yG~n zh6nG_yLYBSvQy{xSYG%LLCB@^YfpZi))`prrL4gVirnf682a%L{!}yjLchI53d>{f z(4kjg0$4+11vq|ntl`sxE=~iE6(P)v8?Z>*ueAx8EUi3NJKz~3#)9_V zH0sn*Tu#|fBD=9QyHx=is+N6bTlobTyKxDhZqh;LGTJ}J4%NAT^1KEzFXJ^kalT4va{DwkB2LE8j^MHR8AZTercY)UBYkZzfaK`B4w-F zHzA#fTpy#c1(jOxet%NPBMH?c@0KPfezzB8iYLJbxhATYtqAmejatM-_C53%+kI-q zHHVX(%Wd^*;rAuTm$jWnjEqPh_q$#AwwEW4s8SEj3WiV`SsosK9Tl}3ClRTkW&~A} zy6|_*AE#iSuL>>F;xQ#QXdy59Zdc`Kp9R-R=ASzCtc&Zn++=fPQo=drT6Y3{GQ{#m z${FrdCb!EH)Md@!s5LaV!`@KO2hq&?>zv=wCDmhdF$|A*!Q=GKD9u>>&+&?e*Q&xS zvPp^)m>E^>b^-G8Sd{efSn`;pD680wg;?6j1<2Ydri=#Gdyg?;;v<{3DA8Z7u`55Y zjsBdtM^+eLtx$-qmu`wSCcaN3o~}zE1==oj95*2kk_P~$t$lS1N2dhJP1Chb6qEeS zjdjh~J9%;02Z-hi=?vq{$b+r_SpxoDDw!{s%4wnRpb;Y~4Z`zPHvW+{g6ED#3Yp z7gMRNzb5?<*5}p9_wTp5(e9U!ecFv8Zw5@VP<_m?gB&iX|9t43L-W~ro!lvjiDnyV z%+8GAZ;mZu_|;%ZvNzTiZ*wZ8g>%fWg zTo|qtmQt1Yt$}T%TVMe2ip*6r1z04qF`BigS){yTOVnWy?>2H%`(hB%@LILdL#S;z z7pBZ(GbKO3Z39%ok6O`ia$vdA68^$6W4-LT)w4(Q;JC57q*{Ipt}_w@y`H}<1eK2W z&yzNM)*pfvMz+-1r&B!wNWOn=b}LQ2n!y!61Zxuo-4Pr!!e7`EraEsl?6BF^%?oaM z>bWVgJ$*k5=?t%aOa11MPwV{gP5E|tSieBH7F_Z{&)^|Y>u7j58bp&mNdX)IQ7w_) zv-R3GA?GbJY&D5A+rSP3E&T3p25M%W4&$a=QmLI$xJDZtQ947HkH2rAQT3y9jPb5; zt|PAT5Pi(ZyKN9Gju{_VvdDK(D7mzK8R^8*)cYsA<9>^8pT`jBpxQ<=d?)hd+hFc; v@|&G60+C-AWiC(GO<>op-f=1)X$hX8q4<6HpHG)^uTL^qbqZ-073u!~h@QNW diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc/Makefile b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc/Makefile deleted file mode 100644 index a3bee96b47..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc/Makefile +++ /dev/null @@ -1,27 +0,0 @@ -C=gcc -CFLAGS=-W -Wall -mavx2 -LDFLAGS= -EXEC=cnProc_gen_avx2 -SRC= $(wildcard *.c) -OBJ= $(SRC:.c=.o) - -all: $(EXEC) - -cnProc_gen_avx2: $(OBJ) - @$(CC) -o $@ $^ $(LDFLAGS) -O2 - -#main.o: cnProc_gen_avx2.h - -%.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 cnProc_gen_BG1_avx2.c cnProc_gen_BG2_avx2.c Makefile diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc/cnProc_gen_BG1_avx2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc/cnProc_gen_BG1_avx2.c deleted file mode 100644 index 3c9811d331..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc/cnProc_gen_BG1_avx2.c +++ /dev/null @@ -1,696 +0,0 @@ -#include -#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 bb2aa672a63d557c1b68f7829b0c09a204095dc9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32672 zcmchA3t*JRwg30+=CMf#2_y&z%31*fk|%Ekj9@S*T0~K+)y-=YqIoqB3|eFnLgiAt z*j}x*R#98utyB?w8>|NPT1#84)_N^f+k&sA)vIW${C{WW%Bqon@69{!+Q--C(NYYfMVpY5kFpjHf*94; z(+=VE^>pY`r!I9t3^9G3mS|)URWrP`#(G!H^{y&UTD3oCyR)u0XWe!m=6hoW6?3-l zCjSzL|3R8d)Na`A_PV=w?n&RdKXpUJYr85w1n%r>)F#x_Pe|I>o{i4Vy{Q|X+*t8p z&h~W`G>|#ld)+6KH)jTEdQw}enWCgsq8XZ~K{RtxQd_E-FFb>`2lrOIHb4(;rZptH zH!X4h|BTAPTRM~jbMV%OCQi%RiVxkjt3LGQtl#t*j(~i$NxD|6F!yu%da5D1`+901 zw)OSYLSV_(X)vt8dJQ%}Kw-HC8#Q>51}}!_Msxcs*Y>)+ZvKijVL{$&2S@Ay*3LEB zjEc7Li9JROd(dc#UOziGF8i=@!|qDAx6;M;-pax)$~f%zZp!~ZjhkH+{j})!t;JWo z6MY*`>z97G&&0cu29+eo5kl$w@WldaEnHcroOC4+mUW3XR?>O`4 ztgrq&)?$)4tKZdA0-s)SkSRlEtBcGuWUllfGXt3_KQgnBafoxA;mk3dd4^MNIP;NF z22V1ag@#jUIHwrSVq{dKryI@^!&z!LXBp1f$Xw~e08$+LIF6r*#W6wNaXegwn%6nt zl0n6Bz&a1?SobuIUCxgG%tY3Z5NbLusilXqJ$n;X?Lu7&!vL7K6q0D|{_E6?i zWK_uh8yQ9Z92rG+Fl&nJLq?HPkWu6`WU9z=02xKjL`IQ^Afw1bkx}GaWE6QgGQFgg zkBlN8hKwSQLPn7fM@EsyBBRJhA`>K6gUBfI*N{=<@yIChL}V1X02xJ|j7)@%l(Yu? zyaxUjTLT1nuYtgTYv9^Jt$`u&$MT(fC?3@z9mn%rn8?|I{}0viJc1tZ!eB?N6#!K4g^EHe{66c4U;+gUF~xA4W!LJ&KIddK?+0)r*YMdJ-9>^%OEns}C8~ z=rhPDt>=(YTF)b+v|d0)Y3)WvY5f)%rS&2*s?pygqqJT@Mrpl@jM91y8Kw0)GD>R? zGD_jRzO=e-P|GnlemUw(E42`?9NP}{a=aq89N7_TIr3#5 zF80)dq~JVc3lhtNZeh*x@V>fYH^2IVOv_n+A$nw5OtK*RdX|8ITkSI-O8R=161}hI zOo*z!p0gm@`g)c@Z0_qh8{&?>o^v2@g?}yt6utogh4Ubwa6SYSz6k+^3m~9CEyv9-xwSZg!p2;KYGz8s3v zCDsaUH<`8Ky*k;^!LH6+bTRoAWqQtfS`((lq^r{b0rBHPAbxyA@9XhHAbwIHy8C)k zAvX8*q(LC=(jj{LdIAs#zYGZIWkNtN3j%sWAfT5G0llFR(93~XmhC!g&;SkWv zgMeN>1oTEgK<_XJ=#7Mc-Y5v@jfQ~U;Sgwc3S!>^ zx_{ih?r93ZL2U4Sv3*2y|9Ck%O81Z4X6*jaU+KP0m+XZO4se4!0)44_NUXu`L9Kdw zSO#$)>Am9-$XQQk7_;ifCLSL8dbVKe4ZGksLm+Byff(P{b1MXb=O+-@MEfZOV(2!A zv-)~&hd?OZ0nyagb0-9X?k)(Z-wgrvdmy0xGYF{v90Kb1LO^{h1k`^40rmSJpng9D zoY)2d^#>rJz8wPUJ0PI`AOzGOf`IzN5Kw;v0_u-KK>aZYIPo|H)SrNWdM^ajcS1n@ zNeHO_5(4T^K|uX!2&nf#Kz$bkoOlKT>d!(z{W%Dz|2G8GpND|@uOOiQ0tD254FUDt z5K#XO1f2LS1k`^A0reLlp#BmB)PD~F^_L-_{t5)t{{R8?S0SMOM+i9a8U)n;2LkG^ zLqPpc5K!L(0rfvaK>ZB}sJ{sT^|v6P{uc;1@mC0_{|y4_dm*5{4+83MLqPo<2&lgc z0rmGFp#DAt)c+0vC;B0v{tpPK{}Tf0A3#9;LkOtJL(AxDZNtlz8~Q$|{AuNe{>lxXZVYV5 ztX%tK3J&5a96j`MPt4b57*^NVQWNsk0aZX3=_1 zHGS1s~KLsJ?a~Pjm5O)LAJ)>yaLcjK_ywo50)+kY+n`B6A&#Qe=Ts5n1R|MiybL zFxMVwOk`|ioO4v9z?mF5)+vk>p|unz12Z(j86|ZPqyr|&m*v$5Ndp=mM5S!+iq}8KKVLd6R;dWjfV0t?iwSEe%tGjdA@iE~d_gJ34|5 z?X6vH!AlxDmj|Z?=bzp|>l`U4QYh41Hho58aAk9I$&?^^H6_^5&@!d9CEPKkxw?Dt z;-$wcO`#Sf0_PS2mM0WpmX1sb%Q? zY1(W80rj&&7)w3B7(KEuH#UNW^P)A%f@~l`e<}KxTpu;$;c2KYm{2$Qyx_6Hsil+V z&6`e!ZM*fY?ZE;V4mQp$IlghuX~#DnJGV?tUp$X=X#B}w0Z+)}Nl||%oj;-O*v1QV z$8GzR$7I>F(AdzTXF*M%vZ^OS>S3lWz3Q3{twwGrg@O6d2ES`ofeIK7fp{Yx^Y7&^ z1)b%tldSz{u*Em8L&~GQWCMx`DrFfq*seGG&5-cCN(`%D~ZB>B;(|Y`AW_ykDF63PMbCF-kdGb*cgbj+o$7a zV2-0=>|mS{|6>SRTpA(;)J15*m1x5_Rja<#-Hh+WSt$4e=>+**b>HIm=~4=VX{ydg z&zzlWi|d8<#ToZbIOm>`2&;>X5h<7bzCYG=z^;XCA#2Kg;~1bSA}w2NL7VOT}V@f zCAyHV3g_xVhD*CkRl1Pn)}ydo7qVUQxJ?&^sY0hNDGmj?m`qIx-iN;3xz9m zVYJ%>Yio7k2>074T&W8a-OE7RtP92NCKRsIg%VZRq6?*}aEC6GslrxWnCccn=RsYV zu6*m&g_-UZXy++M9otfWq~>8%>dn+iJ+8MtBr3GjbvuJL~ z?IG)tA(W<5q2DuT9?`hDm3qo`x)KjybN1G0K^+b#FKk z;hnP-RW*S9SHISkOZ9F#;r^?)uGYn&XQ*QT<-_Xh95=TbCEwNO>blVls4yi+_Ap6}MbYuMIlx z822sBUZu+yxCc}@!sVOY!_iIu)xF==^?z}vt8)Kkx;)vpM3pyl`CGn=Re4WW9@(cv z8-$cHVK|>MnAd1!4gpBVSd}9*ghj&{qvd4L)Y0InN%iUJq~TNLQcUL!P)Q3k1IoSw z+_XS9Wodk}s7ynnb=9})WUm6Es%V%L=+^`%`#P$+A6hhI3QW-iC;NU=MWd&{R84TQ zUocfPkP1xG1SfkRRgoJsrV32g1SdNMh^nIDRbW69oa}L?ibh(28Jgf^A4gT>Aq~0$ zhpX>lPWCdYqJBqARRAjlDR9v>Kr(Pqpi_36Vcun!smyG8BA$6YG0FcI4b#|c+ZWG# z3Ps&oyB~*FtF>57=Mi2tD`qCvsCE|vR~;P9)>l@?Gv}bF+r8{EubNfYB-SYFcL7({ zP5;+C5zo9HMQwfUAG~UMKJcpfPBsGH8VRzd+Wi`E)owOh|BspR%;6~NcE5XuSIt!y zC)OzI5#Y-D5p3hXu8C*1p{T82d#_i`bk98WlP>E5A%@kG~Ypq|>@$zHOLh{q!D)XTD0zAEWhr zoZ*$taqQM2d=E2z&4)yPCT;)MQ#20o4smYcqFmL zafi7RhUR7YhmILK%pIPdiyzJT4s-lNkIOnfYZ1@^c6P)ew1HWKonhXmq-{*v ztE^tpT~<^}o?t(+E?kd2OElfNvMtZYBN=6}+;F|fsVR(_z&H+}^9^d$PT zARmsZrXE#IEVAtRyJO1PH-cQ0=l^C5I+o0Ba}SHNH$7_ad&*w9m%aJ~dy~oDRlbpN z_D+u4)BY{=vghI7r@qkx+N=D6_OA3F9%t_);om8Pw@3Z;XZrTzh8Z)GZ)QY};7MQD z;zudUVswtbf{!%E{vp08@dhhJr@uhZ6x*xJh85>eSVBo7Fr4t8<-CRRvn&_aGjUtbSKoY91kOEy6TlV820Z)1`5%o>g4IR;L6F*ej)gG#CZR%>)bCTe-o)t7_p6EEC)}}g|Sv*2P zUQ3>hin@ky$C5B+i-$t@G{It2;GbICb`%n5?t0&X>@s`W!$i-bSl1yU&&?Ma;wyUZ^H44kV*z$%lLT$zlrf$fj`1{8{>zwe2MYR z0{=VXTLq3+?vy{zF^q$3&~DihlXUo{6dOJ7#qnL`%PeJ)b1W@6gM3iOKJn z$1Cx5e!cq@52EDP54Pg)x#-t$^w=b`ud^Dsi49Xn@1&I51q!0EwPGW(Z!;Fo*g z>pgIfjUl>rNp_Mf9o*^DI<4ZI$X9hq&zA$$@s(0iz1S7CyqJkulr=GXvLzBALiyQmIx`FiKN5tHWMDJLeT`HRh>DE&J+G%ibo`M(-O2b7K(~^TxNR1+OOJh9toOuGNF$QR~$;-E=G_ z64YY^5BpI9nuyyViN8A+_r-Cy=874;;}bWa2i;-PHw_(ac(b*$-l=bG3%59JUD%?o zSJ%=`y{V~fYQ+{0l6mM&M|e7gl=FGy2&zOf_yWc!XgG>5Wc(z?>HJL4BF0Z=oKD{} z@%cA?z)0y#3!i1-jf@*R=dzs@7N1@_H+EJF{#DHXj>SLD;{QPKH#7eRi+{YuzuCfV zKX(W_H?f^ZEk0e_7(ah2_}iHOvIqY?!QajNPc1(EjXz`G{Inw|3TQ_%KXlyUEWYi}`-1-p+yB7g+v7Qjk7vdoGhZ_pCx2}F^a_+cUnYLeu=uw9 z2EjM+)8xV5CiupmofhBr=Vie+@$;I+xBdC2;G6jQ*n>ZYkAG%-O#B2Hm-BU^;G6h4 z-QwH+*9pFfpGJ#s`@c!>KjZoRo(JEIxAEV^&niA{$@$&RxZ#`ldBoz|{=6ypX1@9@ zzTMw6_Se`q@sq{49M7W!-}Gmq2fs$}jX$jx-}a|R@J;;uhsC%1yG8I#{QT5||Fqzn z_<7EQ|Bm3B_}OpqZU2YTKq8s(9L?oCmU2923jQ%%p5wvqqzgmKKD`b_X$|8tejXNl z6F*N_e0w}U5qvXWX}qB(?T=-g+@M36iJzk^zHNV|;G6iFuiJviy%keA~d~^JnVexJM&lCJ}IUYhD zd_Qji8h=du?9{gL>d;YQGn~9%$8JFX^SMW{zyl3%kf5zkWLP~PJN*R~-PZoR= zKZ`BCZNEnFP5d-?@V5%SiJ!+TzCHfG6MPdtuULHBpZ5jd#LovF{E_^?!;FuKpRtV7 z_}KR63ciV-Q!Kvif0f{G=6DEOeB1s8!KW8!DP85k-+Gv?H~yRWd5m#6zaI&{iJyO2 zeA}O+N5KP&hqeqONnwm)wP zzKNfG9{g;6z-GqZ#LsZXW&BJPd=o$A7T@;&Y{56jpYtug?f+`Qr{4rpTIazZPk(y? z$@p)spGz5+^LvrtoA_z9__jZ{34V0GEWX{}X9eHH&kGjcw*QvkoA}x1!7m#d-(Ta; z35?7BE)#qcKj&HeIWTGV{n`ZI#7~z8|A&Ha;^#&W{u6?4;^%pbZ;$62f^XvIZx(-! z<$u-@@#FI<$4@TfGM>i@zIlXNFK`oA9hRNBR=f8IzKN?}SbW>hcLm?f<0lq>u4O-m zUo0?jZsIDRaoMlQf^Xug*n@wG;2VF|S$x}{>jmG$)lC-P?(YMFZ{q4<5B}?dZ{q4r z4}QwH_<1*RHH>k&E{+j=6IW9#zU}`K!T*@!YMBSW+QR2q^T^v6>UdSGT~^}P>Hs`sm~@&;tcWW-5`_9dlbgbH@M<>mImL* z#^wt=js009@Lw~3iNMTLM3g=$R@lyp(zqqAj=HK`;L&Hv3@FQGq7kD|( zBmF&EO2*E9E`L|xPjmT)0&n8^y-nZ`YO~J$0uOS#y#i0+@%fd&f5hYPs=#kyoc>7* zO2+>?8MmKv(Q&{$7jwBC!{5RDp#raDKj}R)N``OtVJ8Wk-dCbjBJePm=Lo!w+pQG% zgIqpK;Pn0ur5go)7yEgq!2iPbw+a03JYG)-Jd^p)30$}8IQZKqDv>&8Rry1~zkti; z`Ii~D)7j5)EDcWoE)=CgfuGEF&J;NPw3AY`!0DHml-dMNKf z>M+<%#mx~3zRyXUMCipk-_3yf2>a%F=O)45%KWKF9p01>dZP-w6A=ng1ujKa1z<9l`%S z^FI-Mdf$*zD$j%Q=QRyGM>B5bYY4CRV!?ld`Evz-BKxyQ@cWs6j^IZ)ZfXVpbLOuR z{L2|P&#jFAxjfGLudKw@T^-}M3;QLEKOpRva@pKJ8T(6^|7*cNj{X0mu;0e~eS)9Q z{QnjF&CK^(&%Y=>&*J&ZVcht$mHCB&|7#wf*@C}^`R54!Zy2u?{3@RJHG*%B@0$ca z!u-1h{}&t&I|P3V^IsDD?Hr$f7W_TTKOp$#{cZES&y0`3CuQgXG4XsokI!_*4c}ou z&lLPB=7$8oiuuig|2WUrO2IephyOtE$ME>yD)_x@f2ZJ^_q2W`_~w0b`*|P5&qN-# zj|JbnXFh@k2FZ-id%EZx#kd(Cb3Q8;{8emU{}n=dmt3EZ%6T3a3H~td*D_(hiuva6 zQBpPePk&y4(rUqvFn^P$%^758yOzsMu07mTUDQcG#wx0-?yPo-YC1ZcqV`r@P_=d8 zny!XWV@rK2I4WOVQ_~(^0U9YY)Lz|!-;2g!^yf&83jO}GsJ6AaIgH=T72(gFhKumy zB>Y|pzr$js@bXZ7JNrx_@-f>MfeoHQ54So(u<41EO$L|zi$=WZRrS;8wp}LgFy}(1i zoE$?c(IWaS+d3CDN&R1`Rg6CQPlr6|KkdIro21#s?bq^gf-p*wOZz&>+K+Jiqm&l? z#zemZE8AbiHjST5cYeng(!2S(z~H8RBd_$(zqLYZ*vBYBjGmEKTbS0+-@jpf8>76@ zGx%+c$@qPR^*Ia-Jv#mdxEYyb<9A(>@yi8Qjvx6W+a}w&3+WsG -#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 95abb7b348c5508e58372278f7d13e0ffb9b3a4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27264 zcmch93w)Htx%a%g$!0?W0l5fb>sA2+LT+3{1&ly2ASzO|-j|SUE|_Fvb`wEGw}zmI z^n{~Udr^`0cWc$uo7rOScz#njb4P`mlk zANJR7sY$&=RkfS;4DxJLE7oqRIZ)fP{($N#(IyA2)ow=3rrpnvfsL1_cZ2m(bz*i^ zrVlWY!-qXJ`=KbE>l%h$e?Y*WE;8NpEa)8WxdoN_jDhiLPj(L`!nV_cf!>az81{kQ z8zA}ydOIQ1KySj7lBU!JQ7e6&m2KoWs^<7>o$OyV-@mFlXVnKK&!`RkB^#azV7@ok zP_g8hedJ&E@IM=Z3Dj=d=k1P#W`*1WI$j4N~*4rs_T%^>Z_z`wNy1oRUBPY13lC=cvA1N`h8mg&?L!Fk9D56)bkF#B!PWyGde$FAB-{x5 zVk7r*wFXLWKtr!f?Tmly1xq%@=_y;HD+So8$h=9JNysdwAe@5C4$71wql0jo zaHb2VOgI(7sX|5@oF$w&!kH_avxPGc8Qtgt;ZzG}p>P%pX9+TkC58hW!+Qr~m>~Zc zE*vt3Z#=FT4qNwzT^oK#V~2PdV&~K|^zrTu60$d8-Y6Wn&E1=8bja?0JAj2l(aNnK zbH)5!(HiVdN!<8Hsy!UX5vjwo_Xgf2^GY_}cFaiK55^=4(6@<7ncpF!L+$s-^bv9Z znVppRBQiQ<{{tCK{xdR~d=ME;K7@=WA4W!#-$zC_@c}ZL{5NDY`9owh`3N$atT6kU z96&}lk%x>Xhmg_aFfy7v3>i%>Mn;oIAfuZYiHs(nfQ%-OK}M6uA*0FTks|?{=aO^nMLu z)j;ppA=VD`{u2bg5IhR;_(1Pt5cpp3I0O`)fPli25K#CA1Qfmr0flctK;hdEQ1}i6 z8rlH?g{L5(@H7Mz{ucxkc0xemyAV)#1_BDZAkfgW5Kwpy0t(MVK;e53P5K#C51QdP<0fhkwDC~hiLwg~h@FNH)yb1w@e};g< zk0GG&8Uz$xhk(LQAkff02q^pu1QdP>0fnDIK;aDtDEu4(3jYcLgD~}iF zfx*Q|kpJSuH@#S}*w;BY*&v_7tpM^vp z=v@SX_*o2r_^E+Fpe}(x+?@~6KhRqX@#aA9QV2xhG6<+&00H&o5KzAm0_qn*K>cC} zsIP#4`XvxhUkL&A&q9nJ=)DvI>X$)4{c;GXe+~lbS3p4hN(iW51p)P|A)tN@1k|sE zfD_k2K%IIHb=sbwUIzj7)eumxhk$wm1k~wq6zYu-P;Y{O6U`7%Z-IdN8VIOg4*~U7 z2&lI~K)oFT>Tw9DcR)b>28dNS;(&m90s`tu2&i{KK)o9R>Ni3_eJupk*Fix2CJ3nC z46$~g_ZA4KuZMv8tq@SBM-!;0AfWzv2&mr<0regTsBeIPdM^Z=*a!jjJ0PHbCj`_t zK|uX32&iv{fco7KP~QRp^)Em`{U0FUL>~myw?aVuA0eQA4+PZjg@F2f5K#Xj1k~?` zfcgUvQ2!D{Kkr5P*?SQ|pX^>VCVMZU2L#$iM=R%yn7Kl zdc1p)|JT04%)N+iE6%26wkdOz_@h@)pPf>9N~KQ4=Lvk?L;V!Y*#dm7#HSe_H_-#h zJ>dSU;in2c70k;I6@&|ijrQ_S2pFI*fhC>~Z^G^}9Q zu;B&aqT>7z9pxbv7v<&W!&rVWgoJB;2$n;^AaxBXKQEXo1p)!`AUrHIrVx#)Z~_RIy9#uCoecQcLmo^fy8;c7l1VoO%s;J3Gms=H$b{xj6(*4`9bJ@ymT(; zHJGdA_*{q2o%nnc*z@?jkNoMLO2uKc2cK_!T;s=fC5118DY~DYj?Y=hx8d_$V>e++f!A+*Gw%2>&lgU92uqpG#exs#Eo;28%Id7Oj`0#;J*^$*D>;6D@fv zl$xx45k2^%YVo-QwO8ZQgwO5xY{lnmz<1&EV|;#xPyXLAKD1swjSqqgKIl2neeFV? z=HfxrSt&*9k-k7r!iSFCF?U0xv(&uQe1%a;EmAe9C8{>H6k~L5smOfKIo-*${Nr19gZbldy5WL4R*lag@K1IdwLcNJN@C<6Rw*8(Wgik(rT&7bR$& zBSoAPjkZ1YnLxyd5+d})FMOxHa`+=BLmSy zELjzrCSHMgFzIfP!-nWX79N8O)Uh3;Qy%w`c#KR1f8H1mtmBMb8f zM{vf1bd9#)Hjt&i68+1qj~epuLR6PdZkTpeHPi{D)S^-RguX2MmWmrV*d{_w$#6&T?1fYCj!pna!J!@@X&E zfMNo9OfljTzv+?FU4lDg(Dq{eFqLz4&9YWk=Dg;Z|1jHGV_aa;Toi(yeyR)x@~I{-FCU9Q z1;e^zXcbXS(+_k8sl0)ZKmlnOWM&T`c^V0ZjbOvZR4`9Fr`f?b?jm-05XrmyLNS%M zg|ciTKO73<0Yintzs0qHvf4s^#s5K8d-P`L{Uk8@HA98|x`c$ufA|Yz!zTX`u#`zBmm zWeP>!(x{x%5(H_0VvDOq$^k~HO^PdWh_h{a3H#HNyXJM_!6h7tc zMd40UnBvhlnLbk}_kNDT1Ex@+3)@VgQWqXKg(_XxVG1+7N1^kqDa_Ws^_#+(-s@=R z2dW75D)bdS5933RP$$i}Zl^5gzee5Vd3cO^I}+1*Gq6yYCb5_%mE0cwIx>XPbZYe1 zf{vDW2!;OytYEF?y-(Rok)^MG%F|v@P6FNg>R*C5<6DU;YBsp_o43#dw(^D%9^AU) zHd7pRR2L84I;ycjd811ZmVvETn7We=qLIMXW>cE@jxMbjwMKc9$%(+$hEdlmZ;HvU zGOSWlT5d`+&w#z)*8R7d;vGwLv7d`C*Xd#(7ys`qy0~xs3EI(0?|xIw<+%5>F7LQS z75@qha$FBvzzi6pQ>7V2wQ6?~PdXt4H3RT#m6RIuhPAcg3i zNd>!v`JOQInb{h`PGvEFLrn5yB5-cV*zBmtWEP=lYC4zs)g&AIYPxUDuF>t@16;Q| zfvvB5Jd@djqG|W$@B7uPe=EC2TYnF@wl4kuJRJ(y{ZCu(iTKs@p6yq2$EDddy4@Dw zy4~UI`(3wYGOt9@^y=;h{A#}Nbasulz6ZFr{wcO`?^~J7T__ssUwq%M=7Ev8?N}o* zsPo`7znX^^`_(*hU3QI*)dcViUmv|QlUa|VWc)VD&|_pDz3MwkHum|qfRAv1SKX#`5KD42L-t6=)Ov8FP#j; z8kN5avr?F{e)^YWGCzZ2@eH(nwJ=X%KVRv{WL|)x>A?^0@~heN_3RpL{W;*;<8#@@ ztFLD=pFq)A|M3C8n%4uk9b3I5ozZYzg-=_8>lmG#^c2J(NqM8Z$shWJ(IDsf7`MCQV z?*ij7D6`USP;nHBR_zH~izcad^dR}%3G*gkOl*J{YC1l+t0SSCR+6U(3)0z6+?4|A z5b~b)pCg9T2_-#h2LruzEwwR7i0=ggYX8Ea^+OU}TtL)Y5! zS!Hv}W@pk_w|sR=GC`*!Wo71y4E=xU#TPICtWta|LZ>ElG*Z{SwyLb2e3Ro3at8T^ zSR;;0(6{8ej#vU&cutf!vS7eB$(jR>hFE>PA=Vj%9aoHWZu2cv^fDM35E z6Uo|`@S2xUn(bJt_OsR)-bU8y2CYqg2+$V-+8TW8hqd$5)?U!QE%CF)zFjwHZ5pfv zhXw8odfZp?ZZX-@BWvs}^RYLA?X4QLce=6nexBH)vD5bS91U$R$JkAIDE#pE=r;-v zhi=jKuC|5kOWPN=pHIhS33D!pv&CqC%&x4`hb}7npb+aY)>)T~ zcj^O5-E^X^I~I+#H>gB2j{b1am{f_Dn_|)AQ2yYM6P+O*tylEQ^oSi?gq|SZ6}jcXUM?J7YIQ&#%47*9Yp3@vx;~?IL}ydwylbko4J#jt+4&C|)|#jTwWV z*c>m`L$lNjhtGbPb8O7a!!_7xY>n3?)p0}#xUKQ_rii}KT=JAS-VJs*9dOo!Rc7|w zs;N@Z`mWAseY~}+tzB$8(~X|bJxkXO4yHS}vz&S?jE=aO@IfWaVmd1HM0d3(aGDlt zh|o!}iY5>NDoU|8XO>^MniWE$VlOV~k)qSgbj?K`-Z61Dvc(2Ao@n00#$N6eg&K7LDR&`Z{uTt$>tX4=R+EiBp)EbFoxrH50`fc$n~Mu7T^y(N~Q1>7E6o5b97)HPHZfyki}Ryv7U zM$DErTu*4k^>&mocH~exUd5&KGNBbrp`WFKy*R@@4Wwx~%a|EGgzsSFStF4h83-)> zYfyU}3!}NNr5*i3JR%zPc9h9 zR>`p14r5Ei6O-B|ASYq;zlN9UTZDs&3Hj>06B5 zp0gVb?ihUAw1Rnv$x7cEF<<4)@wQlbVqG~u7|PFb$#}dqQ9gLvGtZ+kJ{e(Qc5Ip{ zx}OZSv7`Iy{6&k-j+9~^ryhG6>1kAd!GZK{!WrM%k>14Of^Z+6Z0T(?`cTr3@#l>g zxiPS4cqsVfSWrwwjw@90)cYRZInGW&dSuR#g7j3KBL(>|-mMCn2k8tLU%_BqKVWNo z64zETUcqJhx`;ox}XMe|=}949wAO=f(bgP+GZUYXHJ_}4Q2mV>Wj{B6edIWY3~Fn-X%>9q~= z|A>R{VSFScC3+2k(r+2BaPXsyuW;~*_;y70I~@E>#`_%nvyAU>@Hpf98DDGMQCk>a z1xYEQuS$J`@f72-E`G%LHpb^M|BsCCXM7~%MF?f`pU%7~>BD}=>5NOLU!!Z4TE_S) zNJ^zfsAk6d7?-%+$ap{FWz2t!@q>(u|9crXKON!Jfcft-9>G^sN)dgf6 zzg9W;XvR~FSF;_mOZZDX8dW zm+TZ&CD|a5pgBFtstcN5OEU2J=+`K9=xBsd*&&w!KLH~lNsdJB1}-rpbtJF%!Ef-v z*ZJVL`QRIT@XbE>JwEvHd}FX~mqR_eThDX0M*6!CZobZg0B(u&RE5W`oOS$IowJU= z0-(;l$qrg{YX_!7n!Gfww$ zf|fFV5#w~5pNr3j_}dUlI9t|B>=K(Tt1>5OnocL$sBmCPKmv+Cv{5vfE zITrtZhu_EiuUdS1b`krJSh(%yF2~NpZ07}wPyg0}*!ii$-^u)6`0)R?!{5jJzgheR z$cue>2U+H;f_bC)mMZu@#_5%EN`lLC@L3N2mZ7Oy#$}w(zSi*Nh?Zw_A` zJr7uX+x`)UKbIf;g8Up#)wcZ!jEg@V%>T3xf1$${e=fH8wm&h4zm4s$vG}$>DTjZ6 z`Mo~;uQ>b&f8pKc!++7?U%~uWExzsldk$avd&Gx72G6IIWISd3Cot}gf4Re#@t@_x zzuMu8Kg|~3_WxFgFXP{1@$K>dlEatrf5?Zw)8WhbKj*{$rNfu;|GmYx{r}M6Kg#pv z@jmU2=VZoZ{J+cmX+HdZhcD~*HH&ZiBY&?W_TOatMZ9mh{w!u(_%dIYSbW=llf#$z zX|?$FeBJKwC4TPk;qP_$;?K`5zU|MS9KOWQL5pwu6XN|$`YZ8M#JD>?55L>ti$6UU-|p|19KOWQLl)omXQ#uL z_@S3;D7o?TONTG<^J^deQHL+_Q%nQK_HF-9Wn9K{0+&y>__qHSIDFxmSBSIyzmpye zk;MKY*1wN&cYa@Y_!2)qv-q|@!})+s?8|(e#JFp}!r@E&%(nQp{RMm2`1y&& zx9z{<@Fjl!=)<4Mhm_J^@u!+`x4)M=e2Jf{Exzr~4Gv%8r`w1BWrr{E^RN%U-{DLA zyk_z3@%*jBH-AZhe=^eI+x{1i%G^(SX`qlsG496mQ+OMXl8mRs&r6KEShZT}x|_}e*t9`xZqVd3`q z13w<>xGFaxrmwu+YP<@_X-wqsOyeihKq0aDG@j(=FueDv6CD#URhOq4So146PeOi| zqV7<;2?CMm%!-oWZ}9iJg$7RJat^h^!4L8Glgk{O{<$hjtBpw8xsvTSIrzJ5C+XmF z?zhgt3z)yr!ACN_#ldgl?=$y0`0tqi6$ihK2X(uH)9;&<9y21{uiaeU>ENYYe$K%^ zVt;<%;B7oU|Ki~9a#^Iz*OlzgVTYfNIi3gMFXVEugWt#FFy6thWqgu@Kge-g;o$W9 zDW!Q1K8wps9sCD84wpN)oZpEQ|6gE#s(4nCI4PdWHxF84e5elGvS!O!OMzdQJ|9G82! zf8ys8?B^Sd6OE@zkDJ_2g#QZjk2w4a&Bi-XtStOB%qwMF?AJ1Xj>CVJ{a)zsFJb-) zhyPP9U*quQJ)|`b|6TUK+u_%<{d*n$bS`gm_#Mpuw!{A#uZ!m$ejoGqI{fWCK5sbu z9n3%E@XuuXM;!jE%rE9RmGS=um&db|@!!Y%DGvWU_NU6>%kM{%mmgS2Et`@DDQnki(bz*^>_c2=ndpM!GNTr+0qL`dYzu#&NyO7rUuWWnB1jAE|Ko^u89Qc@Dpi?Jslqvi>i3 z_&b;{&$HqW{n;cX`Q1tU+0Xok9Q)%Kf6}qPiv5)F7WDtKK5nD{+F5msKZ~y z{GAT}M#lRczP$JLYlpvAkB(A*bog@rFn=UJ_Ql4!@fDeUAMq#=q+DS26y)!#~XNJmBzC%zwk- z=QDr5!|!MQpB?^9x>rj5&Ed;UHB1AEB;)CEyp4A7Ej$jVFiyoeTGL$EEp11>OH$29 z<`AE!N+U;o@Cf6?wfU+nv91lTibEzljck@&XRNiZEJ=SUP}WeFtW#yH6ZliY&bTS) z+J@NbuBK>9dt)3Nov&NHx--@d8Ywf>S=Wv~iORs}pGy)I`iq3J`gmJg41c0fhJTJJ zR)!b1@zOlr$Y-TkGyY15{!Ze*n<6kkVNH|99Se;- zc!H56NSBvq`XBn5!ZaedNy5u;J+=)2srK+83LtN0*e-w0!e#*gO69lvG3T$`lv+BCXiT{x9aQC$m; zi;>>1&Y-JO6-K15F82!5;DbFT$`jhoF*2j+nHFG+X_yu_E&NH z@_sb6Pe0AL?XL$$HpNe5b?V`Ri{J4+CAhRN@=jFb(r-G`XxMucA)+U8tA!a2bG?uC zZH)4wC-|d`x$*k|>&tV4@TLD!egv6Z+1g(Qrw<_ 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 29fc76d27930a91975d5c62e5f323d24887c427c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43424 zcmeHw3wTu3wf{adnVB;QNd^cAf-)*#KnO{Ahzd9a0)v7g;#-`Ayfv>T6O1n$4WXup zLamBkTjQfjt*z1eptgk|8hq6oy=twsH9i~Ewo#FCTQ&dRT6^!AGbb~Nw)fue`+pw? zX4c+ot>4;fKh{3`>~qfK>cZtq9EKtE;SdW1JO6N_&5@pBNAwjO~Rj;gg-M0|HLHx{3QJ4;QR5hA0xp?0V@5I z!uZad5I~CZm87(Ybj4nwXc)&=TqKE`3}ynqC7RtzIM)^LV0SE zeOowRKzVA4eG$%|NO@|4ef6Brr#w}CUlHf0Ql6^3Zzb}1e_7V{@IK3Vu*m5u<*!IDtjx~FBz#ccu z{x!Qu)ZddiAws+zl+*gV4?3YAY#SXV%<|Ch?_RU-3P3U^ zh<%NqWFvUZCp6c${bt_R{r$ncg`J%Ru(G%C**%hWcY(IBR5W{K!m)n*rdHC2ch5o0 zMfIKmM(=ohNm+1PaMS8%I)j@FBRk(9TWx!#-ept}aWfV%xA$CPv=#OSTdwLAO_{rV z;P<}w6|B94uiz#~+IBxlGwe=yDt1jE`62=-(P2^1ED~i8@Bw-|S3(r^;TbZ#x3H%J zovSL>lnTbdl?wvm}VV8f@xW|6;X%x_U2IyhD8~>pBxu; z^LOOtH4t^R(x41>wSEU=OIK?Hi0Epi&Ot6Lb4?&YUDsJrBL~UIJd6F9D0eYLM_EL3 zqNqv|xhf$7H$3|P~YK(2}s+zjZUL`caLZHL04PhTYC%lgD>_~NfX@llcI&4ON9kxVLh9~ z?p{~hQ=1C+XFk56kQy@c@lN9@E-qp%?sxx;)rsbQIgECYtuHO2oT#XeMDIwEtr+U4 zB*oNQY+-6p#rT)N*3A}CteYxHba_HiJBdOAJ$R__Emgxepb>4*FaE(bwE3!=qW7mKbhfTdRC%5!qVhg@h&PR!LmaITmw^;~VBmi^$e6#R)~+FiQqHK@AfvJ+5tj z|KG9R&xn>jc_|wBYlvD3_Zux&?RR8u+-!-8Sgg(_#n+%%zPFXm5PbrPRY>$0NUTPp z+kwQ{NC*<0t3~H)(S=%c5fTiiGY_NIYEh{cl_SwZy>&3y(rKu8de@Ngq*w`K>a&B0 zsVvklc}#7UX1K>EMqA=ss^EU0QD_fJNRe^1d(&C_gKgbGqm#}|^xYer-a+=C!2iz8 zSqX+zt+bM8NZn)+*@jdzM0*Q)MgH;C@lJGYTG1Ep$FrGFY$&9DU?1EAhxJE)k9D_g zuw`0&uno5TK()Y!maFZ1TG+I^Z2_t5nr3~9>Ew+eagOJY|OCVCC)wwQ`WTYM?@ibDc&5>lJ{$hWu9nzz7 z!)-JG-+)NXk|~)RuTD5p?Q3`_%BjmKf}^Z4!_8jpG+_rt^>6ZwxnV>5{+^5-og zTU0y*k&23a5!4{w5zAbzec{QRhD)-^{0K{7w(uyhh-~3;EJP|iFkshF-z1*Qzy8$T zT7ymITckEOifuA~3?daGuFQ=^sF5x)HkrRcA#yzwyIR|!Fs7^ZE|A==*1Ji)tMwj` zqOR6^L7KZ-e++_4fcrqUceUORg6o3qAOQRX1b_!X0Qe~g01tuy@G}qqehvb_Lm()q z0|bDFK>&CJ1b|+v_2mrqZ0pK?v0PF+- zU>67q>I4B`HwXYvfdH@v1c0YO0C)xjfG!XK_JW|GXF&jX4g`SbK>&CG1b`Po0QfBk z055?6@Sh+ks2c=;mq7q{1q6Wq0s-Jv5CC2S0pN8I0DcFu1zkjotP~ZTy|LgVR>I)i z{5J$Au1p3wLEV}>IBx`6#e~luoX+4B1SghQMHHD-eBvcmnzWH9GIK2=TV#%cNJr*| zSY#?M;v!Q!Vmuq~OM<1=)qmysurIdgyw@VKMQ0mCDmvYn8yk{GXOXl)CotvcVA1*6 zUt-SC?w!2I+fPAv7?;RPEl=jg5Df@5AH*(xT|p@R6*jtB15m*DSqOshQ$Xrnt+d~O z@v|5N906!fB@RcBd z)BXwIt3Uuh6J$(R>uM0d&jJDbY!JZD0Rf!$O#nX+1n~1g0KWhP@C!izUjqUsE&>6Z zY7RI}Pk5d`os2;fa1fUg4q{8A9Wn?V5Q{i3ec%aH^83XtZm)+<2( zzX}BK^&o)L(gg4b2;kR%0Ddh9N^b!Hd;BM9K%1p)jz5Ww3&0RJ8c;F~}I zza9ke%^-l^00Q`pAaG&}2;f^m0RKJ+;5UH){sR!eZw3MU77)O11p#~;2;jGYbgH?? zHE=E>R>HZ+`1s$Mi=05KxhQMkTto{6%tf7p&qY^%#5NMmMfX}nwz;Scq6Bl1^1?P3 zNk?cdvig!>F8X|5%op2SG{)kKZ7%u>C^Z+EgU&^-O7k=qDMtsJi^?s|*j5UgxI~_d zyzz4pomS+ebu`UIYoj*y_I}vg-~ZemwO#9X(RS@8v;~6g+Q(EAERa=Uhz+^$8C z)5!}VPusP~g=MY@WSDM-*m&DPMmAgQ$3%T3YOsi6+qK!JLv)Ts6gy*uNHotPifz|M zNOY7%6o~dlCyCrrG{|X0I9MPnD++n^DRsU-t7Elm>L#*A}!gr(rvMg_OZ@fMM-RmLYQNw-SklD5B}v|)a0 z5!o8%k%S^{m|LaD-Z0V9bclx9uKj`(CqohI9Q6G>taCtc(xt7| zN3qTULCBU$W|?G`OJ)TK0F{ziC7BmX<|QD_7{=CZ*$?GXU$gXCIxcoDcn`6I8GDe} zxmlXw@jfvcsAE>4B5Q!A*rCgm__MUymc>cBosC;B7~;mwoA1VY(>8AUEh5{vc^@Ku zl5Rl(@lIGy(osL?9Bp+)o}=SjIo(p8E#kr!k!@g|2a!5QV{4Y?S~$av6;tG4mMd*o z8q0Q$jvHrBy%RHJ8)tupNR2aW&C)tqml(U6pHJPh6N=cwqAgY49L-09H)3ZYaUIo<{?4K9|O;$)sDe6{MI2MU28ejO8NQcKwVlIw-Lp2|wLC zIDkZi5(kmsdt0=n%EO4ZR9Ts}R9RW{D`f`~tek=bE4z^>BFiQctelEOge=pRDl2Co z!OA`)Sa}2zorIz-RaT}gRaT}gRaQP6305AD1S=njgr6+?kznPckznPCNU-u`Bv?5c z309tpL`2`77-DO-1&tRyZQuAu!~i`yf|))^3?$x~Dni@VMV1vW3U>5UKD;x;4uo zQX*|oh^W>YY%>4i4>4zKllkFXB8N!Qt=Vl9BA>zrh7w)P&!dq@7xK-Nplf*E_ovJE zKH|`o`!pJNwgPx> zssjl|J%R+I9z}vtk0ZgT9Y}DYPa?snUn9Y&ok%dM6A4B=g#@FXMuJgYNN}OgBEhKV zkzmw|NHFRpBpB6=1fyO-f>Ey`!G*q#1f$+Sf>CcG!Kk;8VAP+GU{nthjCvP|X*wMB zX6(M$(#pCS8yAk^%^{ao+mbJ>96+lmux-Z5B@G7xmRI$IhvOB$kBvOr@~Yh;vV~(S zL^>R=jfLaD{aCfU!rgbiS3-j`SwMdJM$8l2`D(Pq6I($36DSps2oJi1MWZBIUA-dB zQ$Qx(jg4Dfm0Fy!1!NnS$N`D{--}QqU1Dr?^(X~o5ftU_C@!vPcNF_+t4Lk$j$%J; zHFEWGcNF_+XCsIGG};}-3jbUX0BCmv^xqw7z6;?9R*+=2mrJ@ih`O!0HEDb04@gsfOba#xDo^a+8qU8 zJqQ4_J6bPyM**PSQ2?$50f2T#0ifMc0BCm<0NNb|fObdqy^Ts{bJGeLlx1p?e`5EMHH z1i0ftfSU^f+zBASod^QlNg%+@0|9P62yhEPQ0&Pdzy&~nTL=PN0SIu5K!95e0$d>o za7#ddTMDurfl1eoZgsb!J9e@rmfi=6n+?uf|Tuvw&8!!I-#x#Aj##CfVTY zd6_|p!rvwBB?|wKfYR5G>*LFeJ=)_88XwWq6w~o)z+f}b8jB0IsK3@CvPFFbL@MeL zgU!j$$qS?nih66aB)N|4?vAyG?VS7tL@MfWAB4^@s5!UJ_~`WT6-E7vQ0!`L{|Z~& zczyu{qvmdqiFkei1cT>Z5Nx9T7zAVJK9JR2t@ndqC~XI+#`6mx7<3PS0RB@Dz#jww z{AVD5{~QGHhd==D00I1A5WpV+0sI#raN5Ws&0 z0{E{%0RIgLoY)Bh_%0B@J3#>74FdR6Ab{@y0sLtY!08Ecz`H;I-wOgKo&^E?IS{~~ z2Lb#A5Wrsq0sOZhfYX!hfd3~5;N2jAzYGE=UI798zd!(g6$J3tKmdOo1n}R10R9FD z;J*g}{7n$R{{R9f-U0#qk05~m2?X%BK>+Uo0sI{hz~2P{oSwJ`{CyC>KLCLfAA$h> zXAr=9K>*(e0{BNDfPV}E_$MHM{{;l_zk&e%HxM|{2Lkw~Ab@`c0{G`3fbRzZ{0k7k z4}bvvcM!l2f&l*CAVq4<@u)e+^0WrA^qdp7XZ7}PG3Q`XA!(B9^~6tW@CxJ|pjG^j zkKcRU-Glg7PiqVj|I$XHDd<{@$hHEhfGEKVM0pW+v92AV6-bfAmjo-2mtW-iurIc` z=zv9Jn~VMck(!H=-XY}`$RpAQ%|*)5!7kVrTS~OeMO9p4qC2Fqx#;jSF&72M#^#&* zaPMzN0E}OrMXR;8-{Ga1&x1b>w)F+u{;|nyOAWR>l>)C))Ce-w2>Lj7)*@EI5%j|s zU^`{d5p;X)qpN5dAZ1V{h-(NUPiIEuZ+%c2E^~A%&(8ycmyY$X^R4FR_Q?0e7M`=Pt$*R!%i0bsJZo9oYYSH| z-#qEuqx^U!Z1Z%YXD*-eLEayNyT5YM8+N@nKMTiO{}MhjbHWBHS1fP)XnEU##jw$z z^;WQDj}biK>wT zfQcN9&rk6A6vif_0Tnyu&hlj+7L)+l29Sm&fgL zIGri{4?a`*Q}H^e;Ye{B;8G1N2ft|QHC#>)Z7D;|B8w&s=cvR2r7;;4@4FigSc9Up zVL^<5&xT7fqVlM9w5ZeN1oqnB@c-1v>EaA=PUM0} zu_%d@S~LbtqV&wjXfZA_DUv5$ZX8X-haN3K-wkq{Am&Bp3$#*X zktmET5y8kZv=#a~$uTZ6J~BZZ70DJ;Bgcv95uAolq8B|hN{q2%Fh~bI?E3cn)k7SE z8vh1DdwJhBKZJWjit}cRyqO|@rdU>8T~<+C?O)}eREn{jlY`$Ts4odsl+}jHtE$Ty zXOz^gY^W=lQQNS5@ybOZnF|#x%@3`b)EHWL_PO~vmEuydsJOPaF6=L9C@T(^`Nc6+ zwI$U}rDgtkjp0(fU7u6AAl1UGs;L1JuiZ1B>W?jTGlN{I(+$s>z={r^O-=4JKWa72-&j#Qt**AL zaav7r^YZ1ZPGY1D<|hU4=KDi6WFXX77S0Qm)mP2U&Mv7eZkUocB{5Fg90ZqtJR$AH zQT1o$qxvhP*#QcW&kdn1W&fh}$inP`|`@NXWw#5NA&+#cT1$ z`Df-$S+HO>8MfLjuWRsU!?3?@X?!I_E!chB@!EDtbQ>R4zopQmX z(&MVu$ckI-QyQIR?S-m}TGaaSZNKRVdri+P)kUQYQp4D3&5f54<%1n=(k`F<=;?pxp!oR$J&HF!Jzs5>Dw0@1P z8|>@eL+e+*pg6RCwJhY2#Hup3*gUj;rR&jezJ5Jku1Np=we1Om7}D$Bgr(#uWOPxS zD~iMx(JA_b-&koxj1Hs6@HqmGdPlpX+aa8}&LXGyMmo9Qzz&r*R9Vua!Tr%*59YJh z=@ZH871Qx2t-DocWs>%Z*NG%-L%U8#f_5IL(_`5CB9V^I)?bNr0&#tsOsC$`@5y!A zqhn(*oop@p{^!Hx~y6|Co%v6ZJuKxa4 zLC^URKiLQRC}*oH6!BW!%vzzb0V%NrOm~lt?=`qQAjMz@NIM~N_RUS7=@y_ z%u=wk;CICYt90mvuD3?c35mSB6?o({NZlSdj9rPOvbTp>~m}-8J%4@%MdGw=vbm%-DsNwnqls=wO z<-BgsK9$c_a*6)m|JJ`_Z!hUS)vu2$+NJ30ihii*0Y%+vyo^?KvZ8Y=<7nxkMJM{R z@r&n<#S)8XB*9w8Dr=J-AO z)iH4{^qq!#DF&O<;i6@3N{S0N0)^9b)dTK$gVb_EtY#KM&G7`vaO8c5I1W!5%5nUe z*fU#*lj3=kOqrh7h#2nEIOn<5U?k=G6_h*=`YD?! z2^;T%xJd}hH&M6j&E}YzTR*j2*a>{_=OE z;?1S>SCsa7SGtk@n$lyub5NGMpVI!+NrV*!WwKK*g+FeCGr6g&N#fwl+|(P%l#?@o z)K0SH;!H5Li!g4^tW3QJX51dmoSWK22E4|DaIq-$C#05UJc3MR>RpscH^}4q)Eu%l zoHOB6nrqx6jU6D(sn0>#eV9Ql9!cFsYGVxQw`)`XNi`U2&?`ADsl`;z5yrE~T$k#H z+&$UY1F|LcCGvWP@ftGQQeUG?E@#?P-=a(&XSS!lN11%ibfkVnnVH6Y!0bppg$kX` zzICRaN0Q@>mr%~rBCQ_d%l#i_A3Pc3zKbg9eU=pNrljzmNgm!q)iu3GQTqNRVEfRW zSAgd>sS}4$r;^+0FCjr(>Q3hVNpnZic<3er=EvZ9npy7vC08SvaV@?K(>~CRJN^bp zCawcbD%QF6!7F{8@XkmjzH@8G)xNcq9p2B`zV*Y)ONB8q6FkS(bA5AAZR7Ah6yn%g z>AMCx#<&kSw{rN!!k9!(IJTA!zeE_5WxB}sC3?ZgmbvA=PoZthJP!7pTYJ{~3^MWE zC7kVC?;B3pUB#T;vfkH8*)Oi-Z1+_oCQ~-gxK)a;8u1gdTxUGO`Hm~aus@=Ba-5sZ zAsdWb=X@Sosuv2wsCmc%sm0%h@QeaySUE)G3^SclL3k)!SVWF7Ges&0NOPBPOa z6@;gpL{t{}%S;b{yM^Z(Eh5*M>E&-zc7G);|TGt)u=QVSswBp$8+q&QrAJJ7oPLlC=0)LO+1d)>)E8)>}_x z3H=U!O!6_3p6{+^3H=;?RKn#}fzRcp3*X5o!t=fLthrWeo`2)_39aw_+}>sYf$YnC9( znm^Q<9^vzl@7o_?%^t0}S!?dqnki^QYTXCkVoedyevxK5Jp5E^qNV1N$3JspdEj;W zwdOloa~$~WCrUqs>iSSFYZhtEG-TOkq1Hs{ZooYcpU;~0T5~pOQk>Rl&C$a5B-QA# z4Xhc_njx)uo7VIS-zL(0;^(Z{qcz)*^_5Wc{qk9s_!g?Vas*Rd|EO)CwB1zKUw_7$ z0j>F4WVr?&tY*2cDD6mUzn$a3!5Gw zMC&`}W=dMtcQ;d3t`&K0my&xwI38ZxxejEblT2FMx&FQuY+=&c&h_Pulr-sN<@$=! zK9kmVuCFOQ#-z2KtDn+-FRkrd!k|pHm)3T8c$zY~URv9^9Gsc!rL~>Q$(ewc)^;uz zXM$c@+qvAFS?Rq8NSB8*=Xz;v=kgjwaIwfsYdcq(QI1Tdm)3T!bb~yu_tM(VHJmeH z?|3pW(x?Y%_R`wUbr`R#B3_y{U1JP7cU|kHwVi9MQ4NI_FRkrdM;KQkbDh^u1|}O< zfNb&7+Rin@*o@3JFRkrdxtwYD(h1a+$C>S3THCquIn&{#wVi9GL1TP}m)3T!+3Z`V zm)3T!hh>LYr27uC>r|ZhfmsuKGO0kFEML&fu(C_4$gCi>~^{R&Y+O`VMd4 z9IyJacfwV*>YF0dYSnj~%&Ar1f}7a7UiIDabIx|FRo@?;<81r-5xnXfXS^@9uNv_- z)oG2<&-sX22Hs^Hj`8H&+Ii)Ozmfa{V>ajeu8_;Zsg9ML-*Ux>9VGvb;}XvIG>ts$ zhyWTv-lia$3d33bP{RL_4N90v5*)``grmkC8DM5Mf5%WFjk=B+k2}>NyOWxa^R)83 z0}!`a16KNW=(^2jN>clzQJ$JcV)@$;=~scnB5EdPI;Db0-$tTe07Xs4%oM30(tn{v z)OyTxNd?TTT0{-WOt(}J>HA1TZcv*t(<2o`dI~r!qUL3$DHTNe1TCVLW~Nsvi1ZUl zL>^M3Gjjxg4;SfYk%;OY(IU0LH7~vy9Iump|B{aMdae0@)>I2zvw9b6)@#k%Nt674 zRcpc~EpW~HeXMz%)_fXSUf`MyPK3GFNk6X1rLlw-xMuhWme6l(#w4`BHP;=_l6$NY zE_XTjTtT(KH7_e>%?_Qfty=%L`odmWNnUA19#& zuDOlQ)L!S7I0^Nd`NQ{E(h(=21+IDLS1jp{lh6X!yz4NmiM-A}tAxkuG+HZdgjx7X z3taQQg{7P#g^`&iR|s`B$`t@*XqR0~}5;gP(g%GH{GB~6OcZ1B16 zYJqD$HlH;ET5}Atthq{Sss*n3L)is=-ENxm7x~rdr^dJ6~hXT&>xmH9yjtYJqEZ_Os?}5MJPS#RpvAjdz`D?Tw1Bnmkp3P#hun*F7;^VgZCT2FN{3vv zI^@nLUJs<5Plww1l>3iRp*_r$VJO1zoP(0>g&2420@sD*hL;kKtwru4wNpD2c{*HG z*m5GQV{0`|yp%G_C<~jzjY%0J)0`ROGKL!?Jif!g9W9(0C#Id0wrnKM`4dH2+5*Vo zgG#~^S0=bPuM#0G&tyTw9BDW+($WZPAnQ$!8k!63RF!ot8%fzTT@1R(FqVxZMEX&% zGXuhm9OLA%(u-rql4F4}w-k&el}s0w?$SHQ74q4l8zNn{?Eg}Gq@nvqc&J&kazw1bscA+@ zS&}A+jS4+LFe*}FowjUbT&KC>y9GPYB*wU*`eNMZ+KL8@b%*$jN;UqOkxp-*;c?GQ&+gErYuxbR!mu}gb*(dy@7nVInrDw94QX> z7JM69+~y;WV@8^%QpO#2e`wxm-sw1I)CSIPao=gD&P+$PVczYSI*K&azxH19&*sHY zb^M0D%)98@k(b4pcK*IwvPN-+pD*{e*~!EKE>^v_apNz zM|GB&@0d8sym%KfOR~&%SbTBnsJfDOi^(3h zth9GZ5_=iSUQx{6vC`gw6m5^%j_q+D4Q?+%+fDwFdFQVjcn94GVKh3#+Zck0qwe1c zw79U9Q5PR$dGRqO;|dX^;|d|B;|d|B<4Q#vy>Cj9H*alIRdslJRqX-_q+}6CA*Qd^ z4;wnf?iw`2#;Fj?;_zyh-v}|M*DR-@;`BaA=zHPKw?6H6UaEy)f&u%aHE$e%o z^YA!(-!|GT{;ApEpqve|bdBvTxcHlUs4VLFKwJDbe55vX4s%SC6O1+({MQE!re`(9 zoQ|+`;DRo}6eH+QtIKmN1*l%%j&0%dorBK_pHnFP4PSH$sXdQpExZaIs%@$%s9jcD zP`i{~;%=00tK*ILP+fItsII&mFI$V!x~8?&Wg@if^w5%J%L@hJ_;0!|EG=!&$mP`y z0OQ3Syl$in7nW9(HLfg!iZVMBp3-~Xv-9%#9bh%jSl^V#vZ1V@I9%7j@5^(Ujm7KA zLS?n3qOlTxY98;shec!6Ve? zrcil9*>^%qgO?}ufvO=rtSW6@#6K^vG%t5h_1S{nV8IXm8h9HaUWzzE1Xa41^Ah4hZh!rrJil&y8n`=(h+& zs1cnnLKHc3W+fY;G8)i$ajmOsB^jX8EUA_@`s-IKSis zxXn{vzHUUT!ocK2}@r1 z>h`e@GU`qYa5^IlHZ@~h*?-I>kA7jsdQzm;i_J)RC&bU)(aV8&wd2{b80-Z3!!CO5 zKuZW(`44e8acMr+5g4H5#M)$aLcUXk6Y^8UwuF3F^m$urAx=Ep*XaycS)6v_E?9O- zBEBgC3He@8l#rhqeeTv;h*P8q{rqt}f0)?fN>pyT2)GmRGosHe$J@yif%%E_ed3d| z67h$N+_Mw$M?{~4j<-Kj=;xo~`B}n$QIVC!X(xUlD$(=0PBB^>3?i z?MBa`J4CvuxAi-DPW*NoKS%L&NhLH-e8eI81!~5T54ar{|cj zAHmc7MT)N zJ&NCLMNIAN15P`4dt47b^Z=6~9OEvlV|>iqzMSqv>%w zRq^%1XB3BY&_l6gUq5Q5{jXMh{a_izKOLJDUq43XXRZ*pE53e+O!K!ZzJ7#E^XZWo zDpwQ)1Re4l5AG;_pg?jo{}siL*!b^&KUiGrCln?MdFZ&V4@%3reRN#wrw?>I>bTa= z9%#OfYyISb=IglD&mCyKj_VFpu8vFfB?ab0iY>$u)xz;AHolJQ zPQ{mA#o}7uCD(i%*ZLm0=KnoOT;nvAFy6oB`C+&yI!9Z8B939WHe>T2q%%fe-)Idf*t#ztZyCG76hR)vZi8j3H& zmPWYYGEv@u?Xpm5Q%%iffLL-NXolld6W?Wz+gGvdbPTq6N|=FrBiJ{IZE@N5aE6en zjZN4bh*O)eklFV~Vx`$7F?)7N%o^?bSn39|=4`>%`7J8j{LWs9I?k#Kdu!aj7UFsQ5r7q1eb zrOQt*ShzfN`jRDQ7OoDhURbcakV?Q42_>PDM%)d96}c-J2rON`tYA?nKPNwDwy19k zH^y^9Wu?X8Vo{DcxUtM8lJ?jO+-s|sHv-!8r%YpD$0p8jVJ+9#wnyGh%Jdh-VX6vaxyJ3J@%sAjZ1A1< zXndzLfSkbn0w$tDlIXX+{Vsxpek()c_5FlwRngH3iRCdLT2IqUz@^{b(D^`0fb{|j z@8=vI_64P~wf~AOXdjnUHNHsUixghhQCod-`>n^phmcvz*Y~Lo zh8Q+v{Xe$hqxZ9lB)(FT=(jFk)BTWG%h%WWl|>R_?{8I|sJ(w6MYeSP_5HExBB_!s zN%Y$vP00k^s3M!WHonHwYogXem#-fsc)fH(Iw-hs v9EDFSKH8j~R%m|GeUD`H=-4Kc@9KfCB)VL!I2?&Y`0w8-HG(#PEi3*XPdPY1 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; iD2z}`BW5<)q%o-^rb*W%HrNn}UoY!qcDlQ`J5y#S zAt_h`K{52j3Tg!reDkr7dFz7@sUY~~e;^1dRumKr#B=W4lT7YT5%es3?>WDFzV5l_ z-g&pU^r9gIFbSB3V~J6K>zQMIMzS;TDD=VV!tM_XJ3n{t7atJ1U;Klt_ltiSaylUJ zr?a<;2Mc#@U4HMu?*5O2=<-hSKpDnBkq`a@%cS8Zd(D-NsMv(Eong>M`=K6 ztARL0`o`@#fb^1aNdyo*;^|ypHkBL5^@!e%?#B^53)$>6LYR_bG5543Ug%HdE@q$4 zF7}b?%$ZMS`$ZpmAA?jT!i_Tk?OF8Mi~H*kViA`!Pr+heK8xX=jY8rmYk_k_yc3pr zzKV5S5RL|fxJFCj9%oGOTd#8PQj@bT>?^Y`XM;pmjp_|BMB(^ z>1x3#lipYz_+pS|cZ)WF^$?spTXv!9-KbYfv-2aR;|9L;>gxs26$-in6jW@wXSBget@Wg%#$itj_^+We@q}!Pc+Gj6V8=+OvBG9xnIrHPe*qj`9Xz~|M;m6 z$8hq`ef^wjo4mF(ZZz^1` z&zBlbPb(3h5!Eezd${LxKhH=jdWKKd-&8oAN&H;EYHl?`dkyC>h~_GDfm^q&(A^Bd zD%+tA)>^X(mPE_$+Ipo_^RD^0CV6{pEpRtZEZc$YRos&%^_u6h3C01-@f!^nA7ab% zL)XIB58p`Jd0RPhtEFp!-N4uJf0BvzR1>ZzyPHuA-)F{2H% zx-VqQJ&s>pNpwF5*I&#}qve)Sk53JYAE_%#fj~B zrgxM1xZbwjkZMua{X*Guy6l7PCm2vO*Pr3fkV&fF-Gutl_m1tkew2?Mn|$x7{I^xY my@=5_PPeCTQ_@x^RR3Sa^*HJKr*loRzpwKDDsGItZvPL?H!vjt diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc/sauvegarde.tar.gz b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc/sauvegarde.tar.gz deleted file mode 100644 index 61383fff860f7b739f4baa0db1e66176b87d4cae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4411 zcmbV}6|!@HqFHE`yV{l z^}P68_x22z824K=_*OMXmaGXtQxWdt!;; z_&qfm1GB+^Dp+lX%uT1Khjwq2P;>X&hHPD>)It%e7)m>Cg*Z0Jd%ioToRlij_es%N zTP=NX4661ruij@yN-?@p@fVQ=tM#B~SMrp7(*@?|N9XWNLO&vFKopVnAQ>^iMuWEM z*6Wi<(eEEmv%F}ra4Ouo3KFYD@4al2zg)SbYG1Xi{)};unl#5VPU68a?nEa%gvn20 zcsdt#(Meg%Wi6>-4i^N}9>@OUy@&k18JUA6&dZmLWsp1^ae3T-29^B#SUIHF*Zktd z&Fw6L?h!-a`$ByZo3STyXq0fGSY=cY63ohqBfOa#Bg}C^*muQ2OTSqpc?J_J4zM>9 zVclh1=jz&PpS_aLD_XAo%z4rO(L~XyP{9tEo>Lvr1jg0F?z!0u+0m6O>*6wr=}phz z^yaufSih(BSUMAU*!k$bn{ocHmsXMg^j5tj1QaMNP6+j1ppG9_cW%X9BSIS0N0G@@ zp5d*L-ct9>OeAJxRwyZ@Kq}bUKmbKeTA``((@~DLf=)&{+@lyMA-!fQuw>4ely4lzO`YM)mSvvFx5#<0h#837 z2f8`QRb}THkeUjwtVp`2 zxxR3+GK%a&JdU_Aj3^`w$9=Xge04yQewDdJjNS*jqZ9Y}j;L@s2ABbrBlCl;_u5}S z3%T3h)}b*4XgNu8u5CilfHuI+j8HX>DeFK^{;zLF51H!THc)ox)D+I)u?i07+?GvmFTdye5{_i&G48BI({8nbc zrc=HPYxLnatEmP^^5jv_bKk8lY7**MB*BcwCt%6z1AsSu7dq2f{~0Pb#nfef)Tzu0^;e5NBa5lee%2M{>z6>qMO!TmUx@hwl zlN{A;~ zGwXY_e|x@iFBW%AyWg296W@)ZT*%I3GfQq=K1EiYS`?Kk_9 zy_T&pcKY|}rSrntnd-YFL-ID@O4$PbV`z334U0DdqN}$tIyuCUQ>)@z{_Vrs{COa9^a$nMyZ@0<1h{)nAR0@#$(ttzQKq9MGe z0PU#@_g_r*d|>hLF>8Jrp@`BvpQ^+>be04?Vny3fC4z?S7mRUPlAn1~g!rN8XYbgo zLwe^B+^}N^zS=wlKjQp5KahUc{)f+g!Qtvi1f?vD0v!c?xs4H*w z6ycS?1u&8~jXpSvUHs9ly606WZ`;Ua5=(p`jwc;GmTG{_QjV8P%n2gpCbVD<-uA{Z`t3#RV3hcx=64}IBY2sB2R5ke2(mOA)zO!p0LA1DUD@d?5KR-R9O{i zYrBD^$1JhL6ut)FR-jWv?wjBQYlEhhC9^Mdfhs;ZiRI%-)?`p!(b5h$BLXC$oP`Ol zrn9h)$~=r@w04VijUHjNPW74;eAj@(^?C+WWrdkx0BpxMA6wD1trBRVC{&^}Sm=h} z?=FQ(s!H8qjear1F<)r@dBso=zAM)D#Vuiim#o@><&{n=Zp3@K2sw?);gh_NICA6^ z%`-w&69jTKv{)r0oWnoZuuC*ngt@D0p+{@0l}TDtU!||fZ{XBI+RlfZ!NrXLw_CP4 z;Ey2APJM=W98~4_G{On*IW0cl?qzE9))8va4YGl9Gq5K+Pi?0PmF^yu;8$}`n7KF6 zU^RzKsXKlS{h%G~@VEa`JRIvQ}e(@7$J8y(9VgcF9gtbyQG*)ha)64w92Rvwwns3|HpI2m-cr+erQ! z?v}1_e>|E|82TDLM!OD$5wB4H1cA#n0DWzjVh1GyeU0seuD`DSmCNhvvJeB^LPK^8 zhlh9H;ya|OXc98C>-0eKrnKugOPQ`L7BPDZ_%Syu_`o>cm5kCaevcos_hy z<2F3UBH~SNlCsQB4zRO_B{glx0t`mw%_+?_&epRL|*po`Xh-q(jP{VJ`hHc9D>cs5fNpmfF)Gt%#yp%hO2sX^aIKv3jH*J z_8Yt%?Tby^GC5$w&Fij^N3FRih+n0Z9S5<4Rh2ZmXBq^3y=B}QN7&>#1nH7C3hY>! z8`*Cg)WnF=Hrvpb%jq8mMCG!eUm+PJwJhBhlxs&L!SkrMXy1OLs2}ofeV!l!)J`-= zvxTY!yCvDYfMj^pMx-z=n>nRGraysu7is@5Nj3H=UR)X_?`l+G_kv82|C`%Dh14(I zGc1AXmjH;11n1B_aN~~3S!h`^wQ18Oi(jgj(})vUk7WV^M>FDa1NVChDe15e)iy5C zftvh!i~s{qH~iHYeUR_&UeUAZ9{l{Jy1Mi9Ur>aZtmjjoMc%)lbqv>+hIb5=-yeeN zPGdtzmnsflbT)`z8fH>)Po6N=`$msCgVM}p^^NDAYR26dbN&OJD`QvwKRrfko~7E? zi$@NDMjcwSwga4QpR;Rx!ato9&5@=wGd^;49}~Fb>_A`&*UUr;Y&AbP|rst2~Nk9kun#M$Bqo zu_lZSUHnN0d8yhs>0f_QFUWxkBpMVf$C=i&=n&w63GTly4K$7BEWb&AYdR#@+I_0W zpS%YRRbFWFP;}3km|f;MvC-G@rIRniu0Nb*K$P&2o#;_C`*M=s@nWF2SYz`r^Q?%-R8y@q%(Buy@@&e*-{ZFrzj)!_ zfqapsu|jDRk2dAgG@=cTjwsh|c)y=R`fBw3>=VqI7z8+XMEk1~_JbpVb{45id0^Qx z-9bA7hTRX;D=>x~iEAgV-}dhl$c6<+oF>UxM&S#|wcpEfU`SMNWe1!#dBmT*Z5^AH zC{4=^m^~z*2{Inaz&j(4ykVG#wQhRbk!aG$?W~iiM>J&kn2d7_-Vl6h=PvZ)FUa{5 z>ei3!mT*eJ>hwf4Dw=j|UD8iRT@4FvkqR*gdEFP5b zFoKp)D*71GEC4GZ51@)iSW4Gmqv&D|R1Zk#fczF0eDahj?J4+$ewgr?$M)Rhmabd% z7O&<{b8f_Z$l4E6#?{MXHFfWO^)JG2dX5gI?pHvdqVG25!4IAIDy+`4pQH#HqQnzi zJ|d_m<;PnoWVkyS)`R0Dr#E%(3-y{?hII$zx)CYIF}6DK$%{|0Yd3veCucof{{+}H zfjD}lHXXjcfW2bR`K6*|I$&Y#W3AynD{riAOdFE}T4=qO;hknFbr0#MpY8<9f0S?Y zrL}f>7t4fKvM4im9c-@AvI2d!F+q0-{kHB(+Jf+HM7{sl_mf(0dW5E0rXNA>rwZ-> z|8cKU>geWSfvsC*!JL@Q=6f9_?*1lZI^?O1>=ie9|9~Jp>ih;Q|1AHTq)b`EyGry{ zF57%zQ4~r4^<(OFyo79s8qed zZwAl_BsUc#G4+D?$K)^3jig-Yd7C+$MrW8yJx+E{mxw^& zPO^*^;=U$3Wr|k8S1|MO>hXCH{(-V#)3`P0`TTj}INZo;zR@8L<~-fVcOcN&LKD|3 zwYM|%8uSc^0E|!K033sVdzS+)QZ~5?>HMN$Ct|ju6d2+wN@59s-_LWMeyEqvgr(o< zUzVR%f<2SNz>IQ^g7QBBs-3I= diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/Makefile b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/Makefile deleted file mode 100644 index f2f8f5e367..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/Makefile +++ /dev/null @@ -1,27 +0,0 @@ -C=gcc -CFLAGS=-W -Wall -LDFLAGS= -EXEC=cnProc_gen_avx512 -SRC= $(wildcard *.c) -OBJ= $(SRC:.c=.o) - -all: $(EXEC) - -cnProc_gen_avx512: $(OBJ) - @$(CC) -o $@ $^ $(LDFLAGS) -O3 - -#main.o: cnProc_gen_avx512.h - -%.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 cnProc_gen_BG1_avx512.c cnProc_gen_BG2_avx512.c Makefile diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.c deleted file mode 100644 index 30cc5e85b5..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.c +++ /dev/null @@ -1,627 +0,0 @@ - - -#include -#include -#include "../../nrLDPCdecoder_defs.h" - -void nrLDPC_cnProc_BG1_generator_AVX512(int R) -{ - const char *ratestr[3]={"13","23","89"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R%s_AVX512.h",ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - - - fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); - - - fprintf(fd,"static inline void nrLDPC_cnProc_BG1_R%s_AVX512(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) {\n",ratestr[R]); - - const uint8_t* lut_numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1; - - if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R13; - else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R23; - else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - - uint32_t i,j; - uint32_t k; - // Offset to each bit within a group in terms of 64 Byte - uint32_t bitOffsetInGroup; - - - fprintf(fd," uint32_t M, i;\n"); - fprintf(fd," int8_t* cnProcBuf = p_procBuf->cnProcBuf;\n"); - fprintf(fd," int8_t* cnProcBufRes = p_procBuf->cnProcBufRes;\n"); - fprintf(fd," __m512i* p_cnProcBufResBit;\n"); - fprintf(fd," __m512i* p_cnProcBufRes;\n"); - fprintf(fd," __m512i* p_cnProcBuf;\n"); - - - fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR, ones;\n"); - - fprintf(fd," zeros = _mm512_setzero_si512();\n"); - fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); - fprintf(fd," ones = _mm512_set1_epi8((char)1);\n"); - - - - // ===================================================================== - // Process group with 3 BNs - fprintf(fd,"//Process group with 3 BNs\n"); - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[0]*Z + 63)>>6; - - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[0] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[0]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[0]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[0]); - - // Loop over every BN - - for (j=0; j<3; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[1]*Z + 63)>>6; - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[1] ); - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[1]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[1]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[1]); - - // Loop over every BN - for (j=0; j<4; j++) - { - // Loop over CNs -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - // { - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[2]*Z + 63)>>6; - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[2] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[2]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[2]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[2]); - - // Loop over every BN - - for (j=0; j<5; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[3]*Z + 63)>>6; - - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[3] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[3]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[3]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[3]); - - // Loop over every BN - - for (j=0; j<6; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[4]*Z + 63)>>6; - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[4] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[4]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[4]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[4]); - - // Loop over every BN - - for (j=0; j<7; j++) - { - // Loop over CNs -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - // { - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[5] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[5]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[5]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[5]); - - // Loop over every BN - - for (j=0; j<8; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - // { - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[6] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[6]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[6]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[6]); - - // Loop over every BN - - for (j=0; j<9; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[7]*Z + 63)>>6; - fprintf(fd, " M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[7] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[7]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[7]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[7]); - - - // Loop over every BN - - for (j=0; j<10; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - // { - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[8]*Z + 63)>>6; - fprintf(fd, " M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[8] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[8]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[8]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[8]); - - // Loop over every BN - - for (j=0; j<19; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i zZ(W`iL9N9;tF%&=)+M$zBGs1KR&8q)wk`C5IybMHAbcTVO@aC`r&Gw0sl z{hf2qz4zSvtr;$>TDBw@2zZhL-a;=`64dkdT$RdKnrx*v)*IuUR^9t%_2qw#WP4uk zqkn$?!w;*Us_LV9$n7k5l3Z(Qz172PCV1&V*Y*&34S?24o)r?|i|IK)`{H9VD`Ep)Ik;CEvQI zs`kQt?@x7T{MxF$h4)px)cX@(GbXen1N%#w4_sMAo!+^7Fz1bd*#iwwi?nP?2Uf9d z8p-{zef&TJVtdxds#@x=HQB#v#K5YxReJ+#FWDO`T=$I+uy=8XGX_r$`Z~YArxs#$ ze@`96w*H=a2*gl>1!ER$wBSkzC^T8H*@EX<@H~jsXl`Hi+P(mX+QmT|Y77lFW1^Nh zF85{ch-^1?9E6 zp^cwWLlT37ER0V(`a^~5Mh+hRjZgKIBVu3lkePwZ)&MfIkhwaD%p7EDLdeWT#v{%# z!kI6eg~F*6&LU)t!Q+LqL^##L`MhwJA!8c-f^e1#XN7Q170&6%Tpi@q739_R!_?{` zXsFf2oD3T}R!?|{)#Y0+tLqRr^T{^$2d{jRW~A{~y9*!mKP-LBogKz$miNc_M_ffX zB*8dE&Sz$vqVdx={+TVy0_-E|w2co+S%vFf{MVodC9JePShzK`_cW3W!^`|tj~WUW5^#MW5^yx&5(o07;+XehMa>;4OtE&W5{{P7;-)`hCBip zLoPzbkVhfYM_OZ$G30T`81i^z4EaE04EZ2r4EYdbBIIfW8AG0gj3FO^j3G}!#*mAV zG305;Bm%tPL%iV2QVX7-p%y%IGB5c2Ar`!Ey)5{fK8?fa6T5=uc#5Mc4yi>jS@@v0 zKcW87j;T*o?SX0Uo%63fX%8Rvq~+~cy;T%)`_t-2+ZxuQ)wP%G$y(L>nJqQ{^S|uE zb?2a0(sG9LKZN9ZFy>Q4Uysac%FsFEHp<+9%pS_zgiHy=@4q3_M44NWG4Z<*8Kboc z8KZSOGDho8WQ^8b$QZ3H$QZ5fB4Zl82N|PvFEU1JD>6pw2gn$$ZO9m{2aqvZ4k(v()?>&Rtv+Oo)=!WzT0cX^X!Rpw8r_bJ(b|EG(Rv0MqxB19jMh$MjMj6= z7_HwRV;X%P8KdBV)97A!D>&L#9NQbrvt{iqx_uXsBh)oXpF* zXozL)TQAG{-#(3HZO@X;62r3Y_^g+8S87@F`8oCzv#=?^KeL6Mz3M7iUjK)uwmF6C z&PK1KEA<$3<1QgDPfI=q(6uKaw5Ql(5Hv|+` zK|tXG2sE@B0t#y&pl~4s6fS~*!o?6!xC8r85YU?o0lj$; z&^rbKddEUQZ$1R{7C=C6Aq1K|4gz|W5YYP^1oRd`KyNVw^p1ysUKIrNmOw!71c)uX zr{wUSa$sstA!w*Qg*ln`l<`CCDZcfxr>y;Cdy2WY`y_?+r+!aOc9FJgtIYZT6R(A; z18>un$8--PxPKeh$J#$~S6wHo`2TSK2p6uSqoK5X(7=tRzh@IJ#PQ@{GX&!Ac8DYT zd+vZh7~Tni`@G+VKs4S3acY0hcOVdyTOeBcd+vrn_i-S_^?M+o{yhk&-wOft z`yimc6$0wthk*JIAfSFf1f19g0rek3K>Yy-s6Pk+^@kv!{xAg8e*^*bA45R>5eTS1 z3IQh`gMj+u5K!-ffcg^Tg3p{T&FX{}}@6e}RDdUm>9WpAc|j4+PZz1_AYVA)x+u2&nIcfck$y zK>Z&OP=5~s>iZy|{@)NaynE&H?&X{j5j529#hlE$*Fi(5ORq8~#{3TKF?OBl5qUF)aOzD8r6c{nc;o!NYg+H2vYzu;W$tzEIuU z|M%)|SNHCz?tTB-aBp7q+Mi_6qau#OFvsD{)KQe6q2iD^nd2}rL>&6oOB~+%$&RA- zp$?rRBO>Gqya?|ye5Nz&s%>v{RZv$C^cEIX8g zgzxMeSk4KBsNYE0S)oiR7z~mJ;k=wN!_cS~&ZX~w2YlQCdD+<`atm_8!-|IGk0=Ue zW##0AVZ0zaHzzw73T2u9;4|5u=6QiYFe?-Qs(K!v7kh>UvO~FHVmdGVP?1w0G&XYu z*VF4AcwZ@BE>Y<% zg8wHbPWDdmzLYpCQR~$w8XU%;S+ri580Sq)OiomIc;f}FE>UqlZ+dDZxwg4(n2 zS&7dT_-w%E4&V>s^9(+3;FJ9^#)sC+A^0G;;Deb1)7Ng~X)eBnIwvJ)J<@ZnBk-An z59V%=G|!u#Sm0rl5{td6#1gMMu@qy4x%NpD69**@^$trEd(#p}dD9bkJq0Ze!wik} z#%mn}>7YsTb@{R((xAroqf)o`QOiTPH)M6iOmD_aZ|*#AX-i9NWo=7jMPzaVV!5=m ztfir&KDsj27Hw>9iFK9Lw=M5%uaDNQT0OgBMp;|uvg4O8jxxCDgo@~j$z9RUoqh%? zOPjn4yv4O`ZSC<$eP^sT9*cN~H@DTdbT`Bz^Sj~=&2910riFP9*xcF*u(P?%;24C% z8)A*kZLvswds{3M&XGac(hG~1*!I@FHF`z+Z$ScMXbw5A2r5=aa8*ejne2hQ_qtPLSa#J-0JKn zKiRWvl1O`7vMX9Y5;0U7LynxT zSe&3}S2H?TJe55hsAr9*=~dVuEUs^=?VMUM<7iRNFb~G3L6k|gtc+G%tg9=sva`Lr zBXU7=yeTp>vgiw4h>Me;Ts*m9+L@7~B6DU=UAS zG_KA>`YAaY7!OCm&OFr8F}OClA;Ny8MzFEHGg92Vp#0e8`6nIQeAH29o!I37KhhJ; zYr0)Haa42C@pN{CCf}LM)$N@;j}!tWCQ9t2Xgx%ZqgPwkWv7ywHwuIEp$&fb++q`e z97yR#I2N=WKYuBR9d|vgNB$;5HobWpm_F@IOP?XESD4AL$(oKNR}ve`5XS?|9d#7u z+x7MmpFo~v13BZo4>Ic+7sYH|6sdOoTAgE=8COq6(?<_5Z5kmD)51L&mKm+g&1A*T z$9a~V(NIPCV3n*1!;;Fq8gISV=k4(#f#rcjU~6DkpeR@w>S} ze%PVbhHA@tG`K(F^;nw>2T)VpR*|$8-sCn25tNd&hbo)4aF%B^&@O?>3|eA7byd-R8~wfwdTuQ z?FN5Ce;p7C=MoeOnCse5(3Y|o%rSLA+|+^ftZbY>LBW)aiO_X))n>C_r7T;^4(Eiw zNyUIMUw>QMfoC||A6x2ZT>^bM~30c%k~0P zD7J-wDU{nn&=ls{LdX;h3&R3*ceBP8h6fr^XtITZ0D0VD z3nNV-ZVRIW9jIAt3kL+2ppdYI@qtrOxWX1D1X^Hitt}iJpjX$gwuLEyi$Gg%3uS?? zqHvQfl$*jPTc|LFEw(Vj6t>#J%)oT$JY);Ajc~7h&n0XkVy_q^` z$Mtr~a{dnLF3-bv>HrscIbnJyFegltIGpB|+|FNz452ig2EAU;(LirPp@6uMU>!kY zV6)|PSHfm1Xqaqv=1IuXomnqn{G*(NZQ$0=BfJY&psEgVXv0h0MN}UcMtEq$*2`?M z=uA`GbLq&&1}`w`T$F+v&aicdbeK|;EggE1DJ>t>>;;M+g9jteC(~0#bDqsmVJpW&kxWV3T;Smd3E4$ zQ|`Oi*8ecD(3JOFWXpR4UpD3STrLmBO?g-M7_v`^Zc|eljfTcj1_PL^EF=J_+^HOA zA*>$Gh?X~;=8#6w%x=)mD~+QmS72Umg-T9%6`+DG;O2xcr!0-na4OT#SY7iS@Cw!e zF;z571`Jt(SFo9??uQl)nE|sb!7F$~s%Z2Km~9DO!3$DF18Kk05MfGyao(gf>%&1RW#BD9A*h#!D6Z+4{6X1ILdsF^a{?QD(ZKyRE4orkizF~ z1TqX~2R0R~5$65E%w}fG_H^bQ#3cX!C`_^0@oqZvSrlz+o%z^joz_w{@hN^at11W9 zn08MCZaO%Dt*<#ZomqvVZTF%p{c0}RIIzZ8zaO}XC%m)Y4<4LrriRzeobXMb0Uhi-RsWutNB`dV2!cf3*1;gm~DJxV>)vUiq`rK z5Bb&H^qgPKxBl!`b6XB}Z>PVhb~Z-_)|gnG4Lr@)yFQ=JoQ$GjMunNnzHf=AGfx&~ zuQ0Qi`Q44_%r(TMMRdO~Wu(5hJ)L=nF#jk_Y5l%;)0xi-GZ%+A(<5p9`v(DWM&&(X z(mJgW<~a8AhfC6#hoNYgX9;r{GasZQzGL%56zz;Yd`)_dS;5rT+r);n_Q$W%)bj$)=ys;hjhoU*NOQpw00{5=EzWRH}%hHB;dRQO68N-$&(=&9S9ks!{MX^A51S2y6vPD zlbnK+eHI7Ap!X_}K;VBy6wsq5x;VfmP}bemS=Q2ASGKagzHIf}Ing<@rgz2~nrh?I zaf`Qmb=j=axuvtq`1Z4B=v*kPYmRrNA#~fj6wedvZ8CH7n{I8}d)}q>&=9c*M=C*}o#@i<83a<@+FT53M!AIyT{DS%3Oy9vNqfLQ~2E%t)XpAXr zGT*nGZ(Hqrhnm70Q4`4dd`{@ljp0qfQ^$m729FpM{&D!t@LQzws8M{;eA}jGx=r0l z6~UQfQ}tnHxsY+lR)pQwzm#gdoLb)&7)Q;IHO=oPn*)1#FgkB2qqQlcQ^@Gmp$U%BM~u-~%F|y<(tLtjMFa|ZE;7L|z{BsQr zor_YW8POFWv4KS};MCy>9oPA3&i0~RO?X;W*WG9wgN)YIcEx;~vnJ`*`i$9g%nkF* z)MYK5=t0W40S=@Hvt93cR}R5h%O zbuEu!wsokb;Uf;N=*p$Fs+{E zi=Ld)^HF2ug3ji6%tl}r%{>l_CmY|F+Q{-uRHPfB#=B})#Rdrw+Y`hHo-W&G5=p0` zE$#K^$%G6T8Ja(ujTv6F6^BQ!v8}e%2I0VEF-TC^=|ST>1Mb8p=V0K&Up(=SVTkeM z$Ue>X>?7Co$&iRk_7O|V_AxoKWlim^v9hi;WqgpAN9OVN_Li=)R4aV0Vb3wdS6aI= z;kF-W;Dj%n7FirI=QEKR#=F~M3rrJu);%3T zQs1-y=SI`#%!*838JUjLk_Gki<~ft^tdF$mu(L;#O*6(jPjkcS#pY#z6DrD$jU`K$ zRoSph_MXPv;n_(@2D{TWOmatim-Kt!9MNjFQJy4e5B;{aRi3NL^UQ`s zZxNUZESfZzFsE?I9S1e)cGAs@3u0j47|^`5#a3gVqcNB>%RQKxgGO?PFnejVqqd;} zTnNlK3FwoUWrfdfXxAyV)!o+J6@xDAwRi)<#9du&{dwIT8MYuNzADTylg`wA&+0SJ zb1L-h{+K)x4%~$7h=&cKDZExfuYFfl(jydIYpbTd?L zh?=XS&y6Tr7hGJB6FO-UC`LEa7hM)*d4Izn*$zx0x@O6cLUehOA%*y9jIIjdsfA9s zyo2==egqR{GG5MQTq2r8x5lJ<)<69MeKI6L> zUv1s-zRq|JB&CS?#%r65Cm5G?@pHyEF+QL9e`b6a<3)@YAe5jVO;#*!FZOrw#O|Q=D)*ugz*UD`xviO zcn-?cuNsAqWjw)nCEJzrqK<#s?qtpq1%-s=^$yGu6y+59aO>GI?Q`@yNz!R~hU0)FxwH>cm^0 zeWWbvnv^|Vld`5xjqT|eAHvm%%usdqL~NkWIm}O|C3&-_ENo0Mvr4P<*83C`|4B6-VUfuo};r{{sce!Neg~W zqz%ac`&?@W#iw@grc*I7K;8P58gzdGnn=5kl711dE}zq`;0-f*-K8!<_v7-`p67RU z;N|Ohqu1Ep5o_~0x^ZK?(VX{sjZ#zJ(vEvUoXn$kVUO(4pGkL<^RQ? zsd0Fb`R_8W`Swk#6u+EL0mky7l=$@XvEt9cjLZD8S+7*#a{m4~h0FQ-sS2-WL-mZy zyliHFS{WyQ+;~{y;PhZc{Jhk`-SPj1vfsz{Z+7_Zc+&YcCGlq$^SAl%cPM@YPrWJq z(uYsy=aj^L6Z7Bp;hPC}_%|^>n+66+&+kOW#r}5YM|}8m6n_u%kM-f7qWI-}X?nU3 zpI#fIB>prppRN}uk#NWVD#hQz{Of%9w=4cj%>RxL|L=;wkNG&sG>NL+_%CK${4e4Q z&e=Zv;}ze&w1+>{^5M5DzI_u9ud4a*uUCBgMxE!~=57Dam+>KNA?&<6oxuO>BRb!*~6mH|t#cTbX~d4?m{( zyO~cfk5M9jT>Em}CH_bF(x=CVe~Yr;!Te1={09{O2Il|RhyRM=f1CMl`0(ra_#pmE z{I@f%$Nx6Pm-xTOhyS?ZOZ-3M!+%@xCH~*@;TQ0JEdERUk78WU*IdQl&f`Nbgi+G{ zJxlQ={%ah*8xN}#U*i8FAHE#l#D9tZdmX;J9)G6nOZ-3W@LhjiQGAL2H+=Ycyx(ho z4q#l5&veBXe`Yv**Pm*|7k^Ij;nyp^tVcOc>iNA?@nt=(^|61m;>&uZci$u)T>rNz zzO2WGefWP={J(L$z2?L3{C`jJWj+4D;k)*?E55A9XMOl@DZco#*WtVV zA{=DJCe_!!sfB4XcKbF@YRns9w_J;!**Yj1b__9CD_TitX z_yv5!cexKguJ{v~zs86EeXbY(kLL1YEcJT-tKt`N9RH6GA1~LLB=%+fPh?!%pQre; zKP>U#pRM?^Kh!#WHy*B2e2KT49ljfH_bI;Y58E8RYk!C0%l`07AAXP@(8&0RKZT6z z@tLgnvL2^7eAk~!#h3W6^5Mr6U*i81iv!xF`p zc>AKmcjK*D@g@G-9KLJ+O2wD>@Act7uK425GY;SN=QYKb_XIR0Pt;a`4mdOXYhfv+*H$Nw?Km-zp= z5C3Jwm-v6jhd+#8G?Mw1_#el(_NPSgCH^ZMz8eo`D89s7%;7JKUeW3{@Z={J&G^qKiBy1?^XPL9RK(G@E=$F2w$fSi=>a6tc!7s>o{DZ__8j( z=)-SRd|4M=KKu=eFY98X4}Y8D%er{j;k)zxrs7K+zU%PaI1C@=nI!8})AsbifP12K7PGRL)SmRR{=K>fqEaJ)5UQ?@mx6KH=xGu|)(T z34T652U=?3Bz`aRmn-~a#=oTSqsd{UbF4_(xrObwDEw;XpRaH(dKWAF=REMe3UA@@ zyh-6#F#lT$-^u=LQTPs?uWbt7z<%~AoF5aIp8=&R8PAo>e^K#&%l^Ef@VnXnJqqvT zasHRW>1Q)2<#9XG?q&;n2PmBWp)^WIDEtYwU!m|t><|6iFD0@6I{Sa3!l(0io}qAw z@0h~ry=_XJ3O|(N|1yQYz~$={ekYgZJrnWs3HIkM#lO)u>)o&L4|yE=6#hDwpH=uC z9*5s6{5{6sQuqgq?^Sp`i4{`X&4d#XpnBe~}OW8XiBfvx4L52F6L9v!>;3icdcUM5#~l%Ps7^toZWYjJ!u7 z_N$q{Pw@|8Jd4Le_@^)~?@@^V^vf@l4pICwE$o#rF8r&wEbm>2{d(q~uK07|1J9? z=QYCrfce)b{#O{kLHSd}e%`70^!HShwkm!(%)jhxE5ncE05A!0gW#rq<*8Z2ul*zmM(jQ1*Yv z{O1*4{%%a(Gm-I;_j=8N8oJ_-{5{zrL_`w)Gq&i-`y|4T@V+P4@xniw$6wwv5q>4} zS19{3FXu2W{2Jz8toZa3izY1f)o{3$qOywl1i$#uqBYD?qvH`1jIweec7 zw63emEA4Ez1ykD)tLt7FZEkC92gl@V>*_jVt3V@VhB|B8@Z%9_82x;`sL+o=l-9Sm zw#M*B>!tYB{a7jf2pNCnk3WxQrC3w6v6Fs9;ghBa4A7X#xQe|>&dA^02~J!$O+nNC!c5ocq(m?J!RAd^zT^Fzhw@>3obEL=b^T0B-e>&Zq zLyD+MRrKiitufMDMIA#bw<7tixo4mzqyOuyis+O7v_)$F>HdqhNt$v+NW2rbo-Y8Bb(wUvL;=y*vjAV@q^)H`{KvdsK}&$;)zzn-J=K* zJ&_w6%xc*0HLUMqlovh0?_x~HZ-VvZew^^7|5DzJOs4TG&Me8I9|i1{DsqhHDXZzW?+(&P8PwX-j4 diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.save1 b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.save1 deleted file mode 100644 index 462f196d1d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.save1 +++ /dev/null @@ -1,603 +0,0 @@ - -#include -#include -#include "../../nrLDPCdecoder_defs.h" - -void nrLDPC_cnProc_BG1_generator_AVX512(int R) -{ - const char *ratestr[3]={"13","23","89"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R%s_AVX512.h",ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - - - fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); - - - fprintf(fd,"static inline void nrLDPC_cnProc_BG1_R%s_AVX512(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) {\n",ratestr[R]); - - const uint8_t* lut_numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1; - - if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R13; - else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R23; - else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - - uint32_t i,j; - uint32_t k; - // Offset to each bit within a group in terms of 64 Byte - uint32_t bitOffsetInGroup; - - - fprintf(fd," uint32_t M, i;\n"); - fprintf(fd," int8_t* cnProcBuf = p_procBuf->cnProcBuf;\n"); - fprintf(fd," int8_t* cnProcBufRes = p_procBuf->cnProcBufRes;\n"); - fprintf(fd," __m512i* p_cnProcBufResBit;\n"); - fprintf(fd," __m512i* p_cnProcBufRes;\n"); - fprintf(fd," __m512i* p_cnProcBuf;\n"); - - - fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR, ones;\n"); - - fprintf(fd," zeros = _mm512_setzero_si512();\n"); - fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); - fprintf(fd," ones = _mm512_set1_epi8((char)1);\n"); - - - - // ===================================================================== - // Process group with 3 BNs - fprintf(fd,"//Process group with 3 BNs\n"); - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[0]*Z + 63)>>6; - - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[0] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[0]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[0]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[0]); - - // Loop over every BN - - for (j=0; j<3; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[1]*Z + 63)>>6; - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[1] ); - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[1]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[1]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[1]); - - // Loop over every BN - for (j=0; j<4; j++) - { - // Loop over CNs - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - // { - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[2]*Z + 63)>>6; - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[2] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[2]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[2]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[2]); - - // Loop over every BN - - for (j=0; j<5; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[3]*Z + 63)>>6; - - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[3] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[3]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[3]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[3]); - - // Loop over every BN - - for (j=0; j<6; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[4]*Z + 63)>>6; - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[4] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[4]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[4]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[4]); - - // Loop over every BN - - for (j=0; j<7; j++) - { - // Loop over CNs -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - // { - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[5] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[5]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[5]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[5]); - - // Loop over every BN - - for (j=0; j<8; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - // { - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[6] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[6]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[6]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[6]); - - // Loop over every BN - - for (j=0; j<9; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[7]*Z + 63)>>6; - fprintf(fd, " M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[7] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[7]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[7]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[7]); - - - // Loop over every BN - - for (j=0; j<10; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - // { - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[8]*Z + 63)>>6; - fprintf(fd, " M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[8] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[8]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[8]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[8]); - - // Loop over every BN - - for (j=0; j<19; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i -#include -#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 7e811fdb4251ec92059bb0a67d2d2bb1b6a817be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26776 zcmcIs3w)H-mH)n(%w$3ci3SwvYph@sBrjfq0!AG3VcY7aj9{*JRlRrB4DYHs z@2Z*JRVU_7#;=65c z|1!+;0SB4o$n0~GxrAokhs zp~cmJyzi2+7@zlDvO$|s;WjbX6KG){?!y9or|j8!>A}V=!;S7>qpLsnH&*Q;`@5aC zpX@K)J$U=rj~+aG8xGL&`|i#7$Zl_F>yiW6O}xHJ^F!0lw)bpp zP|>;PZ69t23d~F^N4yU{R$wAb)?y$MCfA3#Qt{}UNSK8TDWe}If?;zMK< z`G1g6y%?0Vm}f&U)W02s@k9MP zAZmyDA0qlt|HBX~hx-2!qHn1GpCGUqegtCYQ2(P4*c0!BfWp@xpzw7FDEu=76utog zg~uSE@J$FPJPv_|c0oYlTM$tAHUt!&fPli25Kwpu0t!zV6$mK2 z3IT=JAfWI%1QdP%0fiqzK;cIaQ1~$f8XAUx!cQQe@CF1FehLAFpFu$3=MYf%7YHc) z0%8DDM4P1oz7Kzrxep2Qz7O%vFv6oJbyW9ZnSCGn8!K@i;wD^4H{sKcdM!BO6T zgMdIe7XpDYpXfvV3m_0E=RqJ)8Xypn3n36-=R*t*^*2JiIn=)h0^xQ61k^8tfcjzx zs4szl`b7{>UkU;BWe`yRECke-LqPpvi19=Hmq0-MQV6JD1_AZUA)vkj0_vZGfcg~> zP`?ra>Ys;z`c)9<#MKZ`k3c|uB?Q!)AfVn10reILsJB8uJqiK!HVCMb>Xm3WVbfO-M~>PZNw)6xiani{CneirI| z5KvzW0rl%4puP^GZ>awU2&k`zfclLPP~QLn^%MluZ-RjO%@9!E2m$p?5K!-jKqods zK>Zd7sNV_!^(_!k{{jTmw?aVuHVCNS4gvKqLO}fv2y|iq0_xi!pnfL=)bE0T`rQyv z{}Ke$?}32&mm#2jF9g)T0x`&oP9S&DA?TA`bjIc`I`r_zqBHpazvysd)}o`^qeUmX z$xmX@2_5aC!(BbvMaTOUttflZp$CPvI_dRDAKktBJ=FhQDOKP&sZZnj8m{+Y>U7NG zJY1i{wF;M=Xg6{fxc{R0sUp|$7X*TZp`uacZs6EZz~^%dNY5`BvVc|`=j0O$i;D_E zqeF$GM~yBXRXA!?NnxmXbRbA4Y)GSv3jzTc3;2Ub_zVPLIq3J37mxx4{(Q;j^HC2% zqk?0L(5MqCq)*oYe%$e+0)a7wCBaZpS<&b*Wxj%fU@!#ZC4s_Vz~}cDsQ=JsvOn2z zT-R6NcY#_XcVW*das&Rt5HXEIYbtVb{p0diaQ*3!IPZ3Sum+-T!q7MteRcyHNY{&T zNWVYehwev9=YZaTxmt|tYFxMC`UbFPaeaXNXIv-M1*02rJ@!$JAGs?jy!55$8T%Pr zvytz_^%U|$S~rCzQ=^cN;p)4 zb3$rTs?M2)mRu*8nxy(7dgznWi0iYcy%JYDuA6af!}T!m-MD^$>vy;UAHzR%znqK< z!G%7kIZ$KmMV{v3e$*K$MfW4UC{M&ir{I{o5z=gDPHL_LFQpbZ4XK4rV`>q6g}L@f zC!|hHo#LFDs&FQ!&Ty(yIAcbOMVO&+&Ujk~K{{fx`F4535z>gpkD}6U@1vHF(7hv8 z*UfP1ra4omIg2_vqU}u`;pO2;t%&97>Y9$$?v_YxMRVnp z>!&nT(k-{9E7lqwsWTPH2v>LXCMSoxBM?)cXg-6+!#jVQ7&Eb2F`0%}dun+c~oS z@@T?CA2rH^3MIQAkqCJ?7QVi-vvx|jGZvo`PPE6TTp#V}N=)f&>RY^cdEWLFfqKmI zk%%St%S5cX6&~8tg%+jmVQ(Mups;Q^4Zt9t&TvJ2A6-^|6+sGMDEN*zAsX3tsL*|qdM&`rc;P=j|P>yF;W*cEw z+IBEWM!S7oJ?wd!JT;jfdT1!){OsoS)OhISa|{BDeFKwuZe%s6bTnzh`NnY+Zg*@w z8b@XzX_uijYR6=+_lTzHI+}QaH8t|Y%^50e@?P$uNG%&W?n0^a;(6fm!Z1a zbl)?r>fFbjr>tp0yAH_Dgk{2|JZ*ZISg4;SIX2{@T)?-E(BDeQ5S-$ zuuK;URbhoL6uB$W#g)2H?6#q>N*798>T$O&9HRg_GPHP`FhWPIuRVHlPbN?(Hbts|&TNuw57GRAHwsOjU(lx-iYHg3dF# zFhliiP#4a0Z$>-ccj(#V1iq@~VSHc*4O08{A~X zwCtE`9Jk^{^uV{R^_bO;TdDIaHR}vrTC7WFH7o1;Zq&t1>s4`(i@Wbt#Q`q<`3Y4V zUVp6W=tTENx|+*Zy6>v;t{cj!o)R7JQTkVWM>3W&n5J}PDFH|y7?tUJx&OT#UuGL2O0s!!J`Sq!B32~^Rj73kLl zr=(q~$O8&2&;+OCW~m}?C@`Q2PRadLMQxE|6j-P}gHFjaQbj&eV3GO^IVC@(D(dDT zsR|)JkwVv$V`(aadvq#!PnZ?Jm3n}g9domp<55&SSuRYm+1;MaoR6Yzt>-4Mn&el# zYSuiJTcg^24Y=yz1h&5R*V)WxQPl0O`){wB_2pP@jq#I?vR(l^Yy3CO&1Q~AQCr`5 zxmQj9wO%#1Y|X7v?QRFI+AU%0UwA5;Ie?;W_qHE<)qL^Y+!|&55O8JvB(`yPIqnx@ z{O_f$-&5sPbMN_HHTO4p)jYV)t7gZSa%)tqejRvLUmtlXoB0nYD(26GS;(W>`EEAz z`@%dV%mQY9y&OxqIeuc&4O;;`tM$j`W;5y8s+h}#DXl-=p3R&u%o~I$t$%AXn@H{uhwl8h{2d8+|{AhM=4W5+lq%q~i{xK(vImSJzOaq&FVs)tHIcbbO)mc3))k3rF>J(g?HGS!wBW4Ol_l9{p9PNso56C7upuEP^#3NFkj5=Lqy*^wBK$}Yr% z$LIV8dDs2lF(q`oN}F(8ZcT5Zr=}y;T+`mtQqwnUW@P5{s-9@;s-|RBM=ajkS2MkO zR`raUSiGg9w>9c0Iu~l1W64AoLPtB*I5Xp;8#>^j;~RahQ{6&+NhDiwT!UjAG@e}B z9ZevMp#Y9`A&ZWpGm<4Vp49N1=H6IGvMLszM`rZ7OKY^Ht2Npafkm=|XDX&rI|jM& zq4Llg$5-GB4&c)r2!_7xJFPr)Ar*qj;2%Q|`A!?VNtFhI58Bc{%2(lr9>jm!)#nb- zCy(3jn>a4C8eHFt^by)YpT241RN*1BplU)23T;;vlaEtkrb*^PF1czfk^M_T4?w!X z3xfXH4}`Y+I>v>jQWs*+hj#cDjnnp@S9Tk#o3Z0k;CYk{||?Ut?6$krEq;|*IEWc6#&(c79twr=&CwiagDT72}j)EGY~m|*nl zW83=l1EB|>^WjSqHxlV;Yl|eE$fBhY96z>3x|2Ol1jkLWxP#NbNW8amL3~ksLHv9= zYf2#e>mti>3Yv&rAB7rG63M2XR~(W7orX+EcO8Nv*+f5rf*?=vvK_IR{4Ob2f!FMAv~ z3sxt-@ve*mqw!WzFg@pVbj920XcHP8P3?*Fu!$dO>FtTMbanK0YOm+?TKgT%$$6_2 z>FQ{uxx?Wi@>;UL8(Q0=iDgmD2fIR#G{U)e2WQR+3J63;XH(DWXphqy zXV1`3)JbP%LTH3p^)z2}P)*0t%E)y+v1C-oSc2vrEACR&_eDB(92FJWMyT;b)0*fA z0is8O7@0NO(MNUZPDMJpT2{-1$Jt2I&~1{27V@{b3Cc12aWR# zm=m9#12_!F+S#6#a7qsVca0uE+HEzfx;mpZiM2KSaFDMPl3iULi5fhTqL?L|aq=@t zKbxc@bnD4%>Q178^DnwIydbQegW;*Qbu(&bPMsF6SdM6KY)WdpYTE3|a8+lrHy)j< znuxWa*woXqYA&9sRWqlDtJ=d=c%02`nLXQ>StIzfe66R3W|F3Zy%1~dTcExuIlrz} z*;u$}af6Pj^yu@(CArjzbay3Wn7RI@J5xt&nq+r~7pR=cOwR?~ZW8SytOGhObl}oW z!7*U1dU{oftVuRCcSPleRRd;zR`n=<1heUoO&(^X5EvcAhR<(aBJXL#v&q;@mx zS!!va?_^{ESslUzqC=(^ET8KcR^R`Kfm{#Jti+>zSh2_hGpD1m^n*t&|LJ>Ot%{NE zrq()eAu!)0pig4D79Q)G9wD{W8}Cg-p-ZbK-Fsxdxv6D!Z+D)>#Jo?`^NqH1o?E}% z@6j^1qW)^n!ws2RK`(~s$6oG=qn+-YzhJ>x;R@Wfl}Em5X~(FJvmo8;afH`b=AJOR zFf@SeDIIyqv6tFepF5^(vu{C3(0_O=D5RP<(bl@ac^|)3&P{&W_vT4{+WF>5e!Z#9 zsqy24*-m&xfb|SMkqOfnujMjcGgP7@P2x9l882um#qdcuzVcT|@P5Xxu<#v>tNlIl z!heDBZsvcA+YU&{C{ z3%{1}eT?_%?l^Zaz7mpBSbgH>EsUoam;2&%#`XwjF%vkX

w$2+}B z)r?E1f1dHhjIV^GRH21)4dVlhOWfYd_#oqW;Z*5sj2~cJ`u`f^1?v3}Z}QCl6XSFg zO)0EC9p^*F>n%KpGL37cg^y!A#dtm2`84B$7EVXqWQYEzRIfhuhu@KCH9%zj)|GY3kSzQhjO$p8Op=^NYy>W`A$26_ z7(XAr$^-BAz}I-->pXBe_RrVu7d&v!XPVb$t1f#dVLT|Onh!Yx$CE4b{+GK`7^#l; zJ$avonH{#hImuYGYclrinv6ATo2>V0yf3qQf22CSOUvzjW=Ds*te#|9%&AG+vuiTr zvi4b7zR#^2NiW+Y@^X^3V?^&Qo7DewFLUd-y?p!7Oiw*(N7m)u=IEw3@Z2qLf|vcY z1+ONuT#{p-Yqe86YDaE56B9Y=x^Ee$dlS$^)`3a(+q(6hob{@%nCW*g>xJ|vcE0*G zAkp1}eRrGF*3})2JKeoFTy0Z(UZ+iJS~|LL=)+0AVWpLx9wqhsJUNN$1z*7UBnw~2 z_<4-ebDE$HVM>J4;kop)(ZEgrTy5E3$M#zc zzUiN}7XM!6-{`@=+v2~;{I7WMX}?WL#v8_Whm@Z5;J;?^S1|v_9(>xLQxf|F%>SbY zUpdm??`3{~9E?Q5^bhUNDT)2xGQZj2oAL8ii!WQh?FQepKVHaYNq`&E&c%8pJVV%`^zo-?aa@ z#g}+^(t|JSvGhmc;a47f`mu}Ie~E`;UgvE8oXWV^mv}hc;G6xwz~Wy;ibzX6_*J}q zh<%BNvlzGgld$*_4}AvT?9am%U*chx!8hk?$l^;pyl(JK`=faMkp4?N9M8Dj|0;_w z@i5ikoAzaX#J;-|Wv6K1vh&5)ZQ(x9u;r_!1A77<|+IgBD-n z;Ts0u^yhaizQn^`gKygZmBp8Mc-w;?uf#(!<1}8={uGNZ@i5!qoBdyE@n7Qk zy~N;~_WLaUF!R@Y@K3^zttd(VB_1X-ZqHYX#g}+kW$?}Z?6CL}58pKS=6Jtv@g*K! zHTb6ev3$@i{g-$+m2tcOXIgxThdBn{w7=ZqOFUfe!CzUAvoEJ$yyLf&dvG{AXS?380{|)Y~dRiZ?f?FIS#um{4vHiSojN!f6>B!$oTyh{=bYrX5oE2FE21I{*mW_oL`9_ zma?D!&Ensqyy-aqVc8e{Uo5_?FClK(8+GwcO8( zE&iL_zlg+)1c3Avr>}Q#O8E*^Qf8FB$j>r28 z%YHZW-?8{(+5Y<$e}MUiE&j!9U+y#M&o1UyvOV#?Jcnj5F8tS+zrf-zW&caO2!ELQ zS6TdV%#T_2<$Dl${!4#e;{I>6_;0cO9hQAr#~-u!Z!`Zni~k3{ulHK~1I+)q#ox&O z{f)&x#Qeh+|0>4id`$dPMj50D9A7ftNsLcoT==z&PqX-+=khrge;MktZ{tKCjOE8?o`IbpMz}w9E<;)?v8Vz z#h2f0#Vo$;t9mWI{GRJBi~miw|DeSW^SnG}@#nGszhm+1nZMWKzrp;UTKtvFf8XL? z&HTSv{1o$x$&pCn&pR1Ep7FFl8J}eF?_xjKS$uh@@^mWu^3F)@mC*+h+2<~*@_Xtt z7Y{Q|T$ArqC)Rf2ciNE29xYc%t|!{jRGp-sFju!WC7Yb;=0w7&?&;D6RofbE?ro36 z;%!~vsC-j%b5C>)Xr#U73=+O-ls&yyFgG@>(h`%?gu&5x^3XAopFD+W+bar=#Yz5+<4dX^&SOvUaK z)x8p?Pscfj<5-t+x%3;7eEu7_SZh2pMoaP^&5`ZD3xMTozwivLS8i2WMTef>Hb$DC zBF7@tYLWi5xhqhUum6qBT1E7!|FmS-{ikyi+a_sV!0lgPO{~qO^O$_?_i_8<$ruu~ zPg7~PzaALblzt+s(%pP0_Aozh1()_k-inHR`e)LQjF8MVipruVa+`rsy`(7XOIf7o zN%;|E2(#mN73YS16@ze5>Pk$%(f0v<4SzG`A0BWx;9smFU 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 6eae25907c859b9fbb2ca99473a4197fe99e9ce1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43464 zcmeHw3w%`7wfCNxWHJLJ83!@i}=-NHipAGC@$$D1@4# zHhQb2y*}{GwYH^Ik)mP{4c2NKt*>6SjaJ*B)}~4=wN}3WT6^zv_MDta@bhe14_>anu5PsUdfo{jc`KKk&-Pm)ioqa<=IC>B_-W-q0DM3M3@GJ<}7FlCp5iK)uTjFjiW5#auhB{;WX`371LC=kJ?6mE0nzz-UxD(j}Q?H`PZhT zOGokh@d`>0x`4Bw5l(2D40jfARL>(lLP~MDDlb{T^r-e}sA$i2dC}<9G(H@b6KPCx(S`z-rN%&Kf@Rx!g#-H=Z0>iDI1C#J4 zCgBT=LpgQ(Owm~1P+c3Z6qR-Lv072z6mJxzWpxd4QCVJ7*BBF(mo-$!L6llFO3-Ly zytE-6T~k_JE27cWYwBthCn^>%T~e?hIyHA{?hLBE*Z8M%G)D9faYZUPnvSjxl2o~` zI20{mKKW)Er{qs|NeL&2M|gdN4ZanM5at+s@*92R8GQ09eatfW=6n$`_-4Em8GN&z z#Rgx;HkGl;;G@CTQDX21SX?2BHhvT++LGFGepnQ>w8vAsH$qsn@tMFrLkY>lGa8_B zcx)WMnWG~}QND_l4s;#HG4>M5QLLqith7MX;G`Sw6Xyc)bqSp5>^Io)X z7wmDz9K7f$5*_Z!9NkR3U6j-Mdk^`bU)1_^(cTYEE%J00y>zGv;N7HH)beut;6+8P z9TNYp!Z*)tIWG*i9J~_9?yFFdi#k#p!18>$kNUT0u z6T-|7hQ`LiFFYGJeBr(7H7@e!``GL?AJHkK^~pJ39zI;Ozpz~tqH_BSpYuuD=?C4& zQn4;56W*&vZfPNXG&%?|o9q7kpN9{3KZ_qJE81GLWyQ1YMK=^S@5v@xt^1|k@l+6T z&z0P64>4K`yNfn%=oU?xPn`#T_w{7$GW-;6fuwcsZko>bP_v(^BKb$X3WDCAcC(;X zLhmo^>VadZ7Bme2<4{{9B0fArvOJP?E3r;d&6BL#h?QeC^n^vap@Xej?eG5U7pP_@ zesncQTGc!SfbK#|ckk}GmS`1;CK#fKCE7}&OhZI-plo*+i4GcNo#D-z3pJ5OuUr$Q5<8d;_Gdqon~vbhMD`As3gqCXgaD^HAnav8g?C)AevZ z$`);G_kfkTvy=K@&pj||jkO=fcTtQ(+S=)9_jK;+s{kw^Ty{ON^d-;d5??qqcV2J8vlV zaPvz{)U6W5ojKXA6;!$(cQt4?-!hocpM{1&M-Nl@#|uv2uS4oilm_63db3@*uH-M&66W zIYd(aIFviW)H5zwK9#G zI9%%>P#aN`jT?F}?ld)#WjaCFitK2=kmikU;Rz&3xLssa#^Gt#a*6C|zRb;+(aB1c zXnWeRr(qz@gCe{rj5^hjI~|Y28#6ohpaY*c-L=F<{auc-9B(0OHb@H^%R3zBo zbgeT}>&((RCu^NKNN}O^v`$3p6lk4=T4xaw3$@33)x7?g?Xkpi_1N6c;IXt8OYX6i z$vrj?XyrixV{U(J)3elf(q+_~m@vET`m5ddj@j*Ph?IkVxFON@-YtdfoqON)A{@vu z?NW3cBsk_-MllY@Tx*DIf8$yI0*I7j!cEqrA=*uBMRv@o(gr!E+4>}o`OHDvP&ztX zE(KEKQ@FgZPnW+Yxy#Q5TDj$*#7TN@7rCXLrNc1M_bmPJCv3@WmVN^wJxg!2XK7WS zF-z+*d737-=wq5*V3g;GhAKm3J2^+gGKf?(z&B|jnIsywoS8*)t3 zZ$hM^AvJSz6B?yUw5REEiiV#;v7==h6tX*7?gGi{Xt|rzJ6i4mDd}jr7i3*W%Y7hN z{@xF=y`$v;5Uh!}g8=X!AOJiF0>BSI0C)%lfFFVY@FNfaehh+wc7Ooz6A%D?3If2x zAOJi90>Gmn0PF+-;4u&sv&CH1b`<&0N4Wpz*8V7s2v1=y&wQQ z4FbSE5CEP50pM8>06IVb*bjn&o&y2k=O6$)4+6k1Kmd3F1b`Po0Qe;c0KWo3L7gA~ zyaWQk%OC*!8U%n>Kmd3Z1c28-0C*jw4MRkWr4$v1FWGTOEY~=E_|J$#Tr>1>>S<0M zhmQiS;xOclLtoK%bSB@~1^1z#5EGep9PXo|Gr7K1Aw(lNN%jzLveLJaEiJkL3c zbXhGu@iAANi*$tHJBG*+h8+;8F!X0`u1_9@w@VuohN`N4h2a#VMB0FpC#9j(B zyjn`j+`N`XUagkwE8{j&oCw8^mIxH!DDy$!Cg8&`{0lWkR@KO-K%Rm4x2LZeS z1n?LL;FTbNuLeOSsz3m*1_AsM5Wp`50lWqT@HHTS*Mb0E2LgCK2;koUDZzC-2;hw% zfX6`qr>PNe8XCZ9Jq!3c5Wv@i0Dd_L;8%dG>u9+W1n>CZde;WjqXafQK zCJ?}H1_AuvKmh*^2;jGX0Ddb7;NJxSd@Bgx-ven^lTK>yNrzajlg_*k|CLE60<@ZR zhW4Ix=;V({r@g;PXZHte#ck609YijZjw;MC>B#bE(n&1RWztz}6zQ0BY7CKM(m4wv zHR%NUoOE)e4VrXRRUMPg4ono*UefLZcKaRY{@+2Q&i%o}Nrz4pa&}5R9h1&Z%f|lh zlaaReK*OoD2l^3hPGAqTxftbQ4|JoXotr^7vXu8gNsaeFDS}qBns-JEzn*wR8G?Vqxc$J4I^U zLoDo^s_uCQre*iM{zu)G{oRiv-F>UY*t>hQ)dH~`)f{NFz}`6xlc>i)MJ!YaiC#5C zlPuA8674ob<1Nt}B)ZcOjk837vmx4Kh)%IYc_gYfMAIx$J&DdRM6)c>b`ni9L^i6M zMA?SOUbK!}0ntDIpm%8p$z57Zdkr|9V-lprHF9y8YXTWWGn|^;4yYxSF|*BrL2IZh zU|6a5zLuv+YfFf{Z%?ranj%43cAY89f=uu2mZ5OkwZ*k9?wydCU8ZXH``R7$?haeM z)D4yHbXalh_sZ?%&`P874;TjQeewuYx?eCvxt8s9B>D+N%C_GAbg_N9VZfgIwv&N+ zLuAi=JtSJ`D#|$rqLU5L601ffBpPjq>^<-uBuX(v_N@0Bi4MGH&3f1h23<OxVhaf38wRfmM6I0R>-yMz2CR%t&yhqWa@Ce zn;}Zv&BWPx8wL!`q)P(nD}i$jKOAjXbNJyxL*($o@ooj(=`1M0;dj1kM~uTM-!w$i zVMLzw*eTl~>eZq<`YdRfVa-ucgCTMhbgrw2y?>4&a(Mr7hREUlenaH&{tw@=ydV2* zgR!uq35GU;ZST*=Aay?tMeHrnb}Da-PDO$@VW%T;9o+z+?bH$<5((R>tV7$WtTRvR zM3CT3rUE3`;6kmlNb3}7ozt|=QY6^m8Cs`U>nztgE40ozNL=Stp`^EEAGM>)+?Gv< zuJ3kP(WP`8H{D>9q9@=MUFS=%DNl&5lOfm9H42sKV`9&grre@yIz)uTW-pBhZ#=oo zzAygH9#2O^ePW0l5%oGm$~cX3GUN4z1&4FrVu&2heYtI%JSUm)EW?7s_$))@Fn+9U zoV+oa@twc5yTxJrO+(}`-tH>mu)NO@Il}T=hR6|?b%w~^lwL;BwgMu1Q~C|p`*IhM z;zTGSofuOq8x^-rSVF44r4K-tK?P3V5aC z9`J+Q0=`;;Dd4p{A>fxlt^1`2(v(}kFMvp$eDt=nydfEaNxjwWG6VeLP21HS zGeD0aa?Aj)LZt5leZ#&jsY~V!Z*sY00k+aG?Fg{T4Ur?jq7dob?zOG@JY*}$^`C)v zgxY9BGKV~xwoTSig4T?D=Y%#( zdWb{&B$LR0zmG%}C2m84{r3(e7_|)vM%|4BqwYn5QTHRksO?BF>Omy9(1(y<)Q^y0 z)D9#V^;0Am^#~G-+KB|Cb|Jxq?nZ)9PawglJxDOB9SKG~jRd2fL4r{oNN}OgA;GBU zkzmvdNHFS`NHD4s2}Zq)1fyO-f(v~O2}Zqv1f%{F2}Zqz1fzb71f#l;VAQ)vOwwVk z_qg-zur~L&6Tp%dY zJ#7Fk2LXWgv;nvh1OVF82H+|X0BBFUUhZiFKzrH%TnhpK?P&wB2?PMz(*}U{v;m+! z?KTV%T@348W&;tT5^pbi;O2p#*i%7(i+}((9|X7p5a1So0JjhXxIz%%7J&e_ z7-YMe9Q=qi+F(1{o>PdWx1ti}l<#!Hrkqohj{DLf+igxcSAuCy(ei{j+~?g9cgycY!fy!U~?8}A2M z(b4h%2%K^|NDUr$0fGBI2m<&IKmdOT1n?h%0RAHoz<&$^_zn=je*yydPeA~G7zCAg z1O)I$K>*(g0{CMffbRkU{AVD5?*;*!p6&(w2@t@a1VJVCfB^m!2;l7?fbRtX{Am!t z_kjTZ3<%)#Y69RLAb{@&K_#980sQA6fIklc_%A>Je*pyW7eN63B?#cZ0s*`e1n`$Y zP>Gj80RJ@z;IDuH{wfIIuYmymItbvjAp-bsKmh+w5WwFAK_%V-0sL(cz<&z@`0qdf z?*ak*9T33Z1p)l`Ab`II0{HtNsKg&Y0RJNh;N2jA9{>UT0}#MJ1Oc30p#c0(Ab@`i z0{EXnP>CK8!2bdQ_$MHMe+mNlK@h$BZ_^5IL@Tj^bD2Dnk09(sB30u$vza zmSFNjEl=>nzdUFA;cb1NMLVF1dbs)FhY%(Dp}qnSrS`e8)?nCloLIkWh#by%B}Dqf z>f(&p(vy2@7?fm};D6t5H^$+Nql|(b&gg?kIpg4@&iGryw8I(q86t->ZZ|{@XS@L- zwT(R_b2D8V>tTTRsC#QG$r&pw8~eMvJLriL`M%-&bLY1no`24g*3agzT+;gL{1r=Y z7@Ivhj8_V8m`wESrQ_evf3s-sKYjFuX7@@!i(38^AC)C);!WcxWl~FCNV) zLNp(bzyHABUtnw;ym=n}&ch$SD(WbJE^Yn|y01z7=AcLTQd0eCf#85FPwJ3Bs@LmD z0ao~Qf()P(Ax4c%8yHLp3<{(T8Zc-AC%0t5U*gD6x4(&!hRN{Hb1_FNOc1&Q$&cyiV-#ruaPIQVWcOUsMiyQhjLw;u;@4FqM46+yzR99!tUZ z5bf| zK2w|}&TYP+xm1)lR~Q<7CQ*83^KfxY^VsHmfhToPn!kB0*G1z{CsBmIvmm_yf2;9# zE&gu8-#y?zhQAl^_a6RI{|o&?@iGd3a4yt=$AH_~gfxxC?T{HqGsPp_j~j!(nfSxl z^>NG=bDHN0^iuNzQP{jl6g4kFUtz419LF?|Y#uF+Yt9i9nkS0M%{W7##2`j!n8VA$sjUR!~S>9L8_fx%o#rZQt{xmUlnpjd(6I)$c6J8!3TLE9r&BeDZ z>dT|6W3|!B>Y7;Nl=9l*hPv`->DqNO@~2LzZCJXnctKP#3l>j}E+5+%oqx_M2y?5% zWnw{TZEamVT;32XjmN^`go;>Yb!{wMURPUD9j~sdEv<>xqQH18r*u-;q|3*Lqifax zi!U)WUK(v|DvQSIt7k!`*>!7)!Qz~<@slo}R63qQZf#w4MYylZ@bu_3UlpJC(pAaK#TtI%VUj6@Q|hR@j*5pkJuc@w` z6mDEyJL&RRLtW#fHKps8E?w?gJ}Xd-)p#_<;>3zJR>NG*c&k8XdD3J8E?*99PI*;n z!}$EEClPqc6mqUuV`F%ALtRsS__FGFRd`ys;EYCeCjT zLO)g3HH34}(c$X3d8bs*S$0bG#JN*>2z&P@wV%x9s1BJh-s=DH7mTf#SbdQ!qgQ*X zYmHtgEo+pGA#>abee0vYq2DwshdW+%Wug()l} zzrS98f4%kE%Yle`>S7na=G}PHTz#(f9LnN{;sYq zuW71?h37QJE3ih&t(rGLoM17l*Wd&j$M@5ikM{p}t=I9nwRm+omc#gLUM%dodN-T$ z-?w^KW9&Si+KYHB_Z=$>()}N{j;HGuYvGFZSwVH&ech^;xek4)jJ|O8gPT4nC(-Nc zdSX(zuGYFFapJ?_BfGNbjXT0CizMUBb+Q+fxSUD6ETL7U>%y&{i;}RTgHeQii4h)W zjukF5)I|pOzcG->Kn4Q+VF2XF1D43c_0rgiFpsg>e{#KRT_ef0Zjydd*GYz5^XjO# zKVV&Htkdo56mkLcLdC2PrIW1h|DU_Anqc&#HEKtAEk#4*?6+R#CQih7n_9^(Dw1Ch zAtvS3v0>aAb=RQy%GX4$m-MctPjb6Zk~K_l_r5Fml`gkt_i^2(FU4Hzny-+?^;DiH z5pAMf^oX#h*wgIU;py^(yb*7`cbm7ck zd+|wA&{y#C;85IBSoj|FK!<`yhv)L;!m}>qIc88=pv{vOB0k+e?}Xh6q@WIWeR=DE z^n3mTFRYPnMrct+_Gy^|FAFq_Q;$An!n85iaga6_g2qtKbBQrOBedDOAl>g>j*_Lk z0_@u$PZ?&&eTRpV0+q1|f6eWO4=*Q+8t+?nJju!Sz4+Vp?%~5RP*IQ(`nI<)Bl|{Q zVMh3dl){Xh>r;y|@;3X6GG=W|Tb2>2$(S`iBX532PC-VvAR`<41sMVEmyZDNf*mi} z`TF>u*#l`2u2+{|Qe8=X*G$tvN>G(5_2_mN9V_sWS2{-UFMV&lgi~}2jSjdZA4e;i zt>ol~bZGfszdX!$61RFI#J0Zq-tLomKXc)iUYXZBc)0b)$3R8(4KZ?k^T0_*9wjAA zwNLgawvJ1h3+OmX60t5N!YR!!QF&c&U0zV>>pY%Z;Pyn6KHfCryzb8)mCsRf1^;g+ z`aAZ{g6>!2x>L~(MPF0&4~l-Ks9*WZa7D){I@9o@#S0dk9L~WP-^Yii=g!KV5uTct zKO=AE)M??I<*|xzQE6QACr_I_UQ9xbc zN&SKF6RCgQ$O!X!5_Hjj4!jiR2YAdpxY;aL;m@sN-ay)o5P3a;ZA83jPY_8-!$TKf z`tN3D>aRfX)B`T5g*TA;FfjvZzmY1~N){4lNRtUNxN)g}+)s}zwWm}w`b~foBjrMw9nT4cJHp?fQ z<&(|w$!7UvvwU7|R*GzvPc`dZ0$)#$2YAm%QN9}}32W5Y)PO&53uQfiYP9!e^m0nx z14yRbh~yiopXH#+fe3z5|5gUJ2z-E_)GxkG$-rph|C7?80R0aLsb5k$JFq+r>BE!` z2L~hCQ-y~zIlE_iq;jSx_!1fRbEY`hK$$eo ztO|CKwVIMzeocDOG1Ey9fRTmiMV;MG)}DV`gU*&5tT znLN&H3*JDPe9mkSeupwsIkO}9@06M5nGDRX;B91j2G^}U*iMp@JlCRxXT*R8YTdu5 zeTZCk>Rr^xzzR~ho01|hnvnNUa|3~=NcDj-utUNhpqFO-0UE@CG`3XjL7R~vE)6Gh zZ`Rx_aJM3pPP*RbQG$OA^?~>2l+2^YU%VS2_vbI7T0>t;-wBzc~-Ke@JGtAkZs|HtA2+!a=CjFVc5u5%m!>gZvv1>AxlsRr5^HR<#9bfjk^%Qac9HDNQCH0xKhW+0+83y=+c2~42j8kP)Bkd$J? z0`Y%m$ z<{2vYn_F0Nn)ri;+cUTA*nQP#X$YqlX9x}2{K-wMxkGE#kS4|H{aSOl2t7+SAAOuP+qLGcTC-DY z21V#N>ZQltXU*_}h@d0A9of*`)YCsZ%#va);RvR-4h^cdqBQzYPvD91-~@fmS~CS% zZtFa)iPCN-%{^zc<_@iyt2OEWM&bU${P7UV2()it&1bacD$=|ilAE>WXc1~7oBJMM z%`UBZEwZ7{$i}mKSt1sywy`8eJ-Po)mV`|STkip%>v5_GrI6EW=Xp#5gp*A2>KMhT0Xu6-=U?ja}9kviv4=|`1SG;9{fLZ`M3d& z>q&FEt>-qnMxfu_0kV}xWmXD+AIj5G7qp#px z@eo{-@$&JjtRolQ#>MD$~K&4ZrvINx?f);5yodE=b#Y8tvvT_NkOnk*DF zOf5WzjyhJ(OnTu-t4A#y{;m?{pf~Bz0=e*{UgU{NEj+0oId3mK*Mg-Mp4U*)T6j{| zNG$(i;kg+cKI2n2G1FRj-bEss_NmKQWGy_O&?4$R7Fi3=*R_Z`l0|;0Akse}5v@t7 zPnl`0Nz=h$5p^$%0#ZSw(*l!4)YHtgma7X$L^Y&NXVDP;9W2r>CK0u}Rg0{Z>>c1> zUOzp;otwU1Yd)+st(EL^tXZ!$?;%a9|Jz#ATFHLGn%8N~7m-yf*+G6PjlMuiM>?W3UCP?H;_70Zxm=d=B zF!*d8?UyUr=U8*VQdN(8kX0+$cUcljkjRzn7c3c`AdxHC;RukRZ=@;Vawme%%TtJbtuvUjj%yVhJ!niND2Yfbc&T**Ginq6A+9av*tFfc{;LcCHpOw zbZQAlFtzngZNpm0KEj&fOx1#KBg?(=bFFEuWPi(=d0O*lTJuw_X{}@fyc%4nHGfZ< zw30m*d>&_OB|DWhOSEP>vT7x}lqJmx61kGCWXU#D!q%?MK6^1xFDF3BR*NcOD-BRpBy^O}y0Ov(3Rv)?}uHisaD(mb9e5C@JEOR}cW-3Yg` zh6`=eE)4~z*afF%qB<~3gzTkdd3+fI2U3AldLZ4hFbiryl}%leMcDz`K8A^^Lx@4T zLh0jBGi;&REjw{ULd!B!6IvERLsbV*LkB0edx(;vWRhmdZlD5(<_g_)Cytnd`$EHX z7yWpNw2dHEFl zf4JBr1x^=%jvXlh||0nyPE!ldEgzQRC&?O%<{7 zx{6ps6c))27G~5fdSf^{kQG=kNZCe-0eMK=qB!|HvgSY z>KowA@dWO~zis?`7t|*V>-LTr7Pyp*?x7$22if@bP8-IVyUh$s0?Z0*W5I;sOlF$O zD$`qe@=#LtEeqTMN<-ug;59Z=29 z@|D}HF=Xly&r#CWB~L5);5Q&6Uf$$-fY9xX$kdOa^$wglCA4}rmaN@ zww4~bEpFpyDI<(}{g-VWe@EcX$2pQ-gpd7Si=_Pj(~+dFkw^3$Nq<0q+yx&xVb~Ew z6GarM%c#0HaIbg5&<_HC3~UViFtCFhnY}siIwe(jjmzQ;g{U`h5B++_ad^nUQb8ug z#;>o+_W04{Su2JHrg_H<4LlxrKk!E~^CVk*gMU>dn?>ErMXBJHA*!?tH+tMDJ)C#p*p3#%`W(Enl__hg#n-ArU7-di|+iL7cBjQ^E3`4Qx1d;4y1LP7A*n^nn=r0*HBD<|2luL=>|&In-#Hi2x|#|a zCcKfLODU{a9cwI(q03ckWrcegvsw##31g+(D;n^=eIt!I8~|>6X{laoxQ=ijY z`1GzlYhBh*9gj&rX{7PPLibFr+!8tdtkhV#HrB_8%6ef?@tTu-Yr`rpT2ohkY0`F5 z=To0f711?V-HOWE(lyd+dV6XgULZReg}eK>?E*=9RJxyl`FU(((UPTwa)1(wwW?_pj4rCLYfRoka%4H;mXfnV zDuylVIufkmQ*MR6cLcfJ_wKS8BDywST2>S5$FWrbc0Wizw)4}ufp%U7f}Nkq@?I@S z2pd~_7DpX@vO)KovrFt2n~`q$6Mq>(V|(`r^?7Y<9p+nV_sr?$%**p1jX%c@&lS=7 z(u#cOf?za>08eDPBuS!PHjc__s%>hF0ZVfUJ~qKFR90GkX;ZyRa2mdopY$rV_lGs? z)0Oux@XG!^V$sEIcg%hJul0A6&GMsJ3Nn8~>KRdBiiB}AC zd7Sj{;fj2gH_}V)!}ZPzSH4fgUHK_ut1Ca%dT!S%fs-4`)goc7_-rkoTven3QA z`9V?Q${%1oziSra69a{QjyaJ(NVKK8m76Xiem8!G_55?9olMcJo*qi%hs2-@-0Tb% z#jgAz*7MYfcCv(ijyjP)RD>@sFfd^d85{!6*A7ErOJNY(~-}di%qD;JdZ! zp(Olg*iNR<&%upBo{rz*&x6MZ^;2)y)8*rk;_GMJa0h@7dIyH|2S*~D*Ze%i*Uz_U z{!+!)Pq%44eXfq|JkTxJ1n#srdR?vvsOICo6uqK-+th zuj5+Z?bm!A*ZN++=IglDclMoet?%n=zK&~sS6}mWTp0bMou}+;zK&~spI-BITo)^S9bY=G>m7U@*KH2Ij_Vx`zK-io z2Vci^kAtt{THkqh#$ui;wRQb`ucr7LesH?`MuY%^d^gk-kK{ZVLkoR0R9lHXNuK&*sBEBGGA-i^!MP0@mWjf zI+I?h7-FkgsRzIhLEpLl{81A9E1BPW-Tvn!`cEg}zXLv%>#XO;N%Vb~aKcut?Zgo9 z2YWNcb&l(W(Zr|og5qP^=OY(<>d&ru5zfaXThK#hA-siI@96(Oa(#MVzsys1^c_?E z+FU94WXIW`Ym~me@qDf-mtKx?8<&2>{|NlSc#^TH3Tul-I4PuZhKD6}dB~&A?ucn-X?OYpbKB4GpF1qcMC*XuYUxz-C>vqG`>V z^?(?;C^X{w~PKmuyNn1)r?d^@q-n%IM$>dI&D=tY*5-cXvF=4yUDY30NHpCM8x3{b>Tw;&t zeaVDfJ@<`AtJRM3&;nJSQAs5eZ$=3$CQHQ<6xN zHO;!WpzfCRg4+s7>{|*bBH`9f;vERb4T6Ll60B)$g*!In6J`%%w=Wu9w0!=u!f4?c z3o-46r!dmqyQAwCL=@ z710&*3zimA33zO$JX+q^#B-wjd~hVPc~8hJy6kD7p*F-t*F5rLE3?)55h%h z>)5P2bwICO*{QvEWuwuu#zs{<)lO8_)yEulY;>zuCGQM7tGZ&@0yR=cup=yT8`rPF zjRnwngQQhDg?@-N)QenvggTZxzhKGacHC4frR*Th9GcUf+ncKmbcbO>1;4{L6$N}T|!DuC5F ziI8VPiO}gw%Ap49rE99oQFI*);wP6&krvVEA{Qs-H8|NqHCEQN8sO4e+$q%A>e|XW zoh~gaYlyAYIr{dVPSfqc{|yK21JasZuV-g@BghHtqch>}tjLu7C0+A40U10sYT;LS zBgkQYLgB-lvw!sZPjm2D`UHI38(|S$hti?1|7DJ@2@;Qm$bN=zQ0V$^^+s5MUdyIq zq$GHaULJTRHsLq}IeN-f<9B%@$kF#Xn5Z|!@E|L))OL;6*Ky~7hb#y}Ry%ci#Mu*Pp`w9_-4=cR0{)#OwM}kx} zUf+KxQFz@>UB0vZn-so48C;hV;nX^X*WV=}Jg%yG_1}%)QJ+x#=+O5ws#Jk`|3pfA zkAEu!CSKq7XjAwd8mOqgzSs0S4t&HPVa{UiZJgPHI;8>m9ckBG5ID?Z}vTeP3qK1yXCFsf@I<{GATGzJF7!@YBh- zap>{atace%eSaxO;X76PwSVe*Yd`n{ux9!CKGdNooA0;%A3E^XzC($`S4m?1>hd)`2#Hy~ zzK*Xdkr3y2tL9ktK1Ygd>GtdE<(d+y(jT5~M3K!rsc!vh{A7zG6S{m&=}lanHdVh@ zB6Dpf6KSXJQAzOQOC|7C#|M<0_!E-gzg#Qvcj~}Y^>E_zli+V(F9EfBppxL{D!jA* z23{)x^j^Gq=<-eKs3NN$qKOelHw7n-eL~Mv(*H$cq03%~b_{ 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; ix!uLxnPYZx zBnO^>pb+lm&If-`MBjW74xjSofk+fYee&H0K~V8TLBT+*>gh@*y>lE~E!$o7)lXMf zSNFV8SbEA30+<9$!;!=&z((eXpONeg+zUOhy0G)}!uD^Sdxcws?iKzf@4dpmhMe{Z z{PpzJ!v4a0SI@tBYiI8lLUeh%urIb>-#4!OxJ&A9zWf@;G_jD8*)*l}qEtqMk!d5w z5Hd%@h@`XvTcyrup(&Masd^z887Uq5NfWu8Xp0ACUVQikI=8HVXeY+F{;Kq#h$A#0 zwNyczAbaC_4M0Z8xFiCIF7a@#C!5Ok<+?<7Tj%|Vo`!688X-(cv6y?>5>NJ~a%Zzo zWEXqLbmr7Mv%R7RqmM!=6XC`wfYvO=?8g1I39*Rk%tNr)lh5LEk3~!3C~JXpM7$H0 zd43KV10KXti2rgOILcnYato;2RnKxF%XT_WNxj>dXTV4sZ`1G>4S(PuTAyz9UN#I2 zuP^Cj2uOKy<&f~E7zbH&j2YmK}N zV~2iFbiC!jcZ&9&|nq(s|}ENKIciXVi>ebn}(aio@p)yr6Nt9AoP}ikEULPICDDuiB;K>Q6;6#%x0Vz0n8yxRT0;S-d z1eD@*G~tv=xC0s@Z1ehl)oXcpN`79$e^;`t;a@4aqT&B2+1K#T zlpJdKO(kDZGu^v*eLm4}dSZ$AjHnLrTg1Jm$9YtG(Q|w}zNv6pGrlfZjm>&!ui+d9 z(Oh9JaBH>|x*H)_B|EgiT5B}Gl4!|YTQ3)@-UT0ZlDF5^0{7A}wH?@A**)%3t9mZG z;5uMAe!cGE!)bYb=vw#+;?r$Auc<(8rFbE*>)c&x6L&G0=tDK(dUA*v#qhmmoNVLN zhXQ@^XW}68*VLhKAJcsyU+!`I`bv5PN5b`&^W8|@H0tZqhniyEt^YXs>M?0iUjJJX zVx-#+p)P6vH`V@cCz? zpCI<9{3&-m|0-g7OoZS-f&88jMx@)85KCJBW3@i_39V0eU0;7)#pFCul(fQ^SzC}r zp107N_$GhVP?n5#G_W7fJIepaBI366hExXZ$Mzo~Ll~#aIQvg9pl04b!|x-LRKMMX z`qB4}{kg75Yg6o9mH(DXxEnG0_UZogO-$PAgzEo0oj;vxlK&4X|4&gLC%u0E1NNXZ A*#H0l diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/sauvegarde.tar.gz b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC-decoder2/nrLDPC_tools/generator_cnProc_avx512/sauvegarde.tar.gz deleted file mode 100644 index 7676b9e13558a534980113ffc38e067ba4cdebdf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4010 zcmb8oRag^%0zhFTl^op;CMYsmI!33Xr5Q+#?i4mk#^?|MLApa42?G#NK#+!w5=M9H zki7TlzTda={VxZYc%Og@_s52S=pg?tICqe#=gR#bc(db|%o{*oaN~~x&qc5HqcYc2 zQN6b+~T6t1|vlTPn2A z!dA6%wzVM@jPWM4`0;lA&&Mb)m+jRLQ)*g8UIU>(*3Eyyh3xqSCvzNlS?8n9(M-4t zJXlsz&in39W&ep2HoqQ~y;-W$_k>NkTVQHh0d?E}r@$=KFSk$*9MedU%eab2p6F>c zv`CZ{t{O?)Y{zv~ZmQGq&3Wv2R^gopsq#yvhsnsz?A)euT;Ey@Mkjrs*<>4X1-E9r zs|dT|wCr?30~BwaY;cTXx4g=58R}CRoAkH#*GC}3c+SZ8W;HMLRtgnNFD<V6F$Q=)553`lWXhQgddHi_iuo#Qwx#nx zdQN?SxC6Ej`!%A7Mxs_N!!k~Ys8nv!l5XM0?;n1<+&NHJ*8%#Fi!(hni}&c)eRyv8HAN^~Q4ufRIU$iG$}&2w#1^eF zC83|_`&qm8y|OVYTVh4|=2~YL*C7rYGD$9|pc#bwTjgFF?3G;!ltX_g- z=X*ytTnFal^K@w@i0|yi<^2i6@_vzqygtiRepZ#3A!mHfIFb~WekA?tGrv$pkkVtq zbWR6JHx^)0?8$GAvB##r%%Cg2GS-xzb9NTOmjftDLPH>4KS~-fdjg(?11h_IYQ%n? zaz2E!YV4M|;JDJMpDWpp$JI_%Go49c>p`$d{lK*Z<pEk{>4h_0QvOEl^z|{0L9d0x*)D+1+#DtT!oRViJFQHQ?HAF4;$IK-(u-Y@@@zs9;!P-5WSC~XiU!#zNy5!CRO%bYOG`14 z3-VnyBu|k!~2{(YqD{%=GbgF00<$ik6Dgp@G47`Y3d%J++c+A~<1$ZE|$*tUB{@W!vIco@j# zYIE_(x2WpoiTD~qB z^S@y}AdMqHY*ZD7^Oz;Cm+52VKSvXK3kyze3EuoXet3MUBvnjQ02{wORc^3k;05LvX9CvRfDt)KaKwU3Hwv)|A z=eXnis0ZIBH!zyXtt0fsS1jJA;zVoT#s+6%&zv?Y}9bGXtEhdAHoqzOlRysbIMH(S~uAA)ReHPNZiXC1i6WhSmsk}(I z3!bD=D?o@v4k`2e;wE55R?Yb49^O})njd4R$k`up^|3xKG8^0|D&*cFcBsBS5D5`G z!T;l91YXY~xR&{@_Jn-&pb7pZ%v)c~M8>;$(7`>qgr5mR`m?a4o7_E*9D1Ve`1dAL zw$L0Gqb*>AxM484Z#V<_0o_xBxJP{AW}@_Tt0mfegs42pFfA=>5O*q(xt2@XE$caz zKS+fo9w0(n`dUFV_pWs}m>2(m)UnGDJU`_bOKiYZ!wZMJx?a*r`+i zm^@Did;c=^l9LWcf9n`{*@#|(R%&bidrl6m6x>cUX1@6D-<;Y#s6g1Anr>;t&XPpH z!r-hHWy&@7WVr6-Qz9MOyhNM~q(OcFeX{sTd|=DYK2bl} zpIiQk!q=R-0lAwqyUK{C935@cR-c^(MU7_@B!j+LlDP9a)FFzfyIFVD(nqP4H1)`3 z{YKO>&;e?JjN5~Pom3xGl`8q4S!X(jm^djBJ{on-i_X~zA?p{452&%UEvYp&C^4Sm z_n5V{p(^`3y-%(5yF$0FlN?*@Z~^8^ zx`$?;iS=XnkduMro8kVnoezQ4&=I1{_=O@d-qS-z-v~eCu@$>|zX*e2fdGCe$Ite^ z$3t+3cVUPAqQjwahF>9DAM!f-YOr+QHx*tj_>pSed6~7p#Vn~eW9UhWv$Ub3v_;?{ zAl6Hp+F<=2o(~uF>pgk9NfO|2`b&<7nJP#&AaQ$S=DSkyTQk15ZTC?|4~q=uNf~NL z7&hG`4akWY{|p%wzj?~2!T!0ZH<}zDPhL({Es{b3?q+o~&eycvqss0C z=ts^0P~HZlb0Qsqx)91*$8T}(O;>&F19%~(i)GYi3xoXDoRST__ZArG-<z zf9m~Op_U|UGeKcPgrf#x@%P0ur!f}?=6#FCEl5-4b;y2aDWj6Ke*^6i9ifyM3R^u>SbnWI=E= zM>Oy;|3QwzX(QLGbfRPQ7ZB+9LY+oq)kMRH;4U)Bkqd+(6M18zv9bPrxMd+NBX&LQ zS@CDa4Nkdz%isa{g2B?q-V~Ey-8QNj7+oW>rM_|^C%*^|p9WV7mvbB+A;GnyQXGR6m_ow@Y z;z?~-I7A>6)Nl=&b`Z~}bYvgD?=`dSH4u_`p$HNlnv}n#p;-342IdH^-tB`9K-c;q zMGZ5!h%&losrOnjxQGkN-aDm4yyA6gH`N0|f|L9PGNd_1THhc40$Q z>ADF|$*yLSLTk&o>UBjix`#3^Mq-ZZ8~|kM;&a;O{>|Lw(l@Re1@=JP5Utx|)Fp-N z32^*d-9ap6e0Fi5_mzY8+hbfRhM=W3+IM^=<|Ufla%Tc159~tp*od^6mf2eiGkm-G zu4}5>Jo*ScJKiGU{?6-^0NR-+2kRDE)`k7gtn|#y!-6OZAq4~HrU_Wckh1`&0&J=~ zLtN2lG(!F%m-K9h>v;X$H(ZN2Wl7@T{r4OaLO{)At6ZLizr=G6`YF6e@B-HlF_*jr z0B}W55FqEtT^A!hTbImL=4bmu->`if?Jv=l2e3YB4k<++6k1T;gYMPbE9^@t-H1Zm zgs=i80kIi@&iw;n8l+otD5O090qGmFTG;|K6a)hAom}@=Ar+79$HDdYT9PB$Fxim{ zl+J&}{?Su)?R6=H*4RA~*QRyzh-l)uX`xXUZ$>Em1Ec_J&k^QHdsBWX-mygU7$I-m4gbO)_QtRc1)f+XC=O(No=J?iaLiYV`I~N zD_=*d*GxoMaQpsgGqkdXO6`*+3C}!ZU4Oa9T3TK5bJhXI7T>3P9rj~%*+wx;VR{`e zVz|IQLlccX%I)pyh*W~R|VMDw3lf@^UOk`11`tL9oh@q}0-bTxVE?QveD-~u1*1X(#j8zJ`1 zZ|xDXHcvJMfwj!BS=-8Nofal@D}9 zeLuTJ!%l0s1PbVHtMO+8*yhv!v?no#v#og`8%Lzwa;UOI4Ts+d@3nlP^!}DvO$1XH z$hgYu5nI>@a7fWn&LXjZLl`^Wk2|CX>k;L(PfW_oZ&Z9>MxK|7a8p1UiZYlnykf-6bBi*0uRvMZ~@vmWAv~@OeOQ?^tUh4>R z?R21R@}nDL!FxoZfp;Jz7u;fuXbSv&A%{F=GZgmqmh0MEqE4I1 zUy3e$c4bK-1~v -#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 858e228f666ced081987ad255617e57339f4b668..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 617808 zcmce92bdPs`Tfi`mbwc|S=zD`sZs@{NfUGt6vT#zf{kK9R8&kXD~LjDM2#&LEQ#1L zi4i3#R@7)DnnW?0kZ5!*F&H(H#K`}g`_6p#oy*L8v-|r$JNtZX&U@cm&bja0xp!vv zqAAn&FYtXY+zPyL9)C?JnP7IwyXUPvv8nmZw+Y@zuPNSpdOf@n{4O^8h!C3)`P><} z4nIo`>Uo9uEW&GKf$SJrFu{BYKfB0oFZ>Kk$WP{Hw+X>l`E0RT(D2jqstwL`ENl5y zf|p-)lGz`A&JD_OWAGWK<4>mR8>H(SqzgZ{1_cX0!}_sqd>t0}JFH*=e)0DNet473 zyZxjsx0!!ib|Sw|xKzqH;nFE)fB1Qr`2|10XPE8~q+>a=ZsmdDtRTOncG(fsFZ>LC zdV^10eEivi5?O2UpEOT4D zr~%?Tuls!HM?L|ev$RJR@bw@GuGZ0X9h;R|0gZ&k2t6Jy;mVSlfL{d*>rS@-vbXPu-W(a&RTlr;w8%#cneNndeRba>DkN9@{T+H z^fQ-v3r;xo^s`R#7My$L;$`><%;wEw(s^esJMPS7^G-W%@e*&|yoINoz9iT)&pTlH z)Jglz8#ZXzpb;#6f%*%7kt6=0U(p2H*_{?6P!xDa%TI6T)zZ(X%_hMp6K+G){;)3)8>#k7Pm&Z9)PCJxYSeyR&Y5a|*th9vw%Ttaqvy?6 z`SI{GP+#Y@&}hnBTMbn@#iaI`jKL{$`VWyw?1l z#NTX+k892E(frLO_;{)LJ&eCu^^fP9-~IWURsMJ;eh>Zo)HT07wr0&=YgT@+W9DH~ zw`|_pcA{6a<(c{BV@uUD6TG@}VffX8vTl<-Z{xXWpu=khF2zU9%AKuh*8J_U>!J1X4;-hBElnuY@JqZ<`vhgkX z-24tcS3XH2Z+TPsQgC6H%U5v^iuoR3lV@Gcce{4gRp3pqnj32_pZ>yzvd4a8JYTtr zJUq37Ue|1q6boQn69E1D7@%$v_pO=ocFoEQ-uBKedwNgouY2u(aJ><4HJ1Zf^UM>B zyH8O)Pmdu!kck4QLk^lrs7+FVVE)u1$y7?S9{z)hp4|y8uyaFuN?^*436Z%|PJ*24y5Gqg*k0t`u5c&xDg?V+&LB|t%RiK?U zD>wUPzw|EITz1LjX#TQaPI(`DR!?~!=|ZsVms`soGjb|>_}P`4yFIhBc+HgGMGe+$ z^*8%lpV{8TfLrOO=E}CKkSS}s1D)dXau(&OTI8P7O9@JmY`RgK{_(%Nc5RvR0Udt) z7TzwO@yv~tP^{>lqJ@XIdkhMpC= zx5O3EutI#0n}Rgr2&NJj7&MHygZ`6i;uwx2#Pxt_M&iEtcg|}*;$DSmEO9?4kWAcl zfWww;m!qHuTlR4URpy|Pgl!IDt41ErqZx@L;}e@t_R?d9jC_~pdg31Jr(2- z*BVejTu~BnSCY88uT9P*t~iZ2f~mv>1`Q*w2TGCg828OrnTdN9rWucMcfd53xYY!b ziCYXffw-#_jaXC+WlBXM)A*L=hchG}e%Yfm7VxNmkO64wPOLrxvyd<8kgeF%pEaZQql z`-sFnDLIq4(lp`-rVo`!{*jruS7DlwxI3)Ze8imt(^%q;A&^YmIKUx0&N1!; z1v$jkD99mhAfSM_(kOA9NR;!2(g7f@NPLjErfI|xOeHQbXc%$hKF>^C1xzy%SNHdv z*L=i13Da2O?k12-+$z8c#NDSLhq$X1Rlo_veW4(SxIZY!A#M|(fVgH!#MO|v zYs3eMYo10N!BpY`gN70J>L;0ry91^fi95%7%}3lcn8p$}j6iaas{oup+(-pE#C27W zLtFu%fVk#K#4RFm+deiqleiXX#1Tv-E-+{qaTO><#?yhiy3E8q3Db zBoj9WZ~}1`Daax2Lq*=~@j>ER zr4dIkmAJs5VZ`0>x6H(y1JjJeO|xF}5myb<*dEt}Kr(T4A0!gj5-CGY9pe6}QaQxE z1t=h{RT6P8k+_G%2Z<|7BaUDyae+a@h^u=)GjUJCG$V1>Sg-krTL{xw;tnQ|Ox$3= zAv@0Lz+nnaIH5Lc@phq#jf1;mvn5m&k=h#MH85?5`#<|FRwKPM3PE`em?o&=mg++P*s5Vu7^4sj0v3W#f+ zL|k7Iw^DqNxHf6T5lkg6FlZQYPyQ)0ao4~!BXJ9@*L=i{g=uV$>q#J)xFWy_#Pw5< zLtHBbImCVWUXHjnNyOEVxL06^oJm|o8gT?ui3A*^u z#u9fjfn?&Q0Zt%pse&Bh4p)#v+-N{SkE=)`ZV`!VEj~zG+ce?`rVo`uf6O&; zzED{W(~Ldt>vwWq^Yyq_U>Zx@BLtF(y9RIqagQm;A?_9hImBHIC?KwF5^<|Z+-&hd z;@YJVM=+JRz@TBoU9&CM#QBI@2-A$jjkR9$5!V`~vBd3sJC(R?fD?%OPC*WF?<>e5 z?j=A0aqW_bTTkL{7at_9eHw8DQ;7=<8b;iySiT9f=z#K1f_;8gT?ui3R<(fEOs2mH^j6JTk^_s88efVYqajy|bChj4?3BD`rV&RlmAJs5VZ=T3MrPtx!Zagsv#r;B#0`XLY>#V8Aep$Yf15~LC!`EH zb%@)gQaQwZ04N}?V-j(FN!%v!LE<{45l1kUxWJ%c#C^RrGjXrLG$V1hTd(1`Q)_?CY6{ zYYo$k#C`aioY#EBZGvemad#3(CT=C*1me~!$RX}Z1v$i>2`C`0a}sfjNZeHMLE^fk z5l1kUxWJ%c#I1ZS*TngbakF8Xk+^}@Yd+!%U>Zx@$FHUm_X^+y;{Kr^hq&J<$RX}= zKml=Gl89SP;?{}}64y12ID)Cf1qKZx?v-C>Chm5aW+ZNz^_q{ksW6QtZU}+o9@iRh z0&#mQ$RVz?f*j&JKml=Gqr^FeZ@m)cyru4Fe1G}5^gD+R8^52qbLdF<+&l-L!3{NW zcMcr`cq1-P^6FZ_dEK^`(G2FUqWC+9meOl@=g^)kT5#vkeFD^#a-X_$=mG4nyB1#S zF2q~dg!ay%O~k)ckiBzgE1|cO3dFlV>LgPs{}Nb6?i|`W2se%3&Y^XK&1c>GA(PxY zhjs)e)qr4Hw~i*!JBP|8^^OUF$p)I(JBOxD2;1*BFNO8nQui}_ue%a&@pld_LZZ6w za`yVpq1A-mSCGAP=zc;kDahWb@)Ds36=ZKf`75Do1Y+-R+&hQ7iApc8Zb|F?Bem%r zFir0L%eCn_)@w}fU$0H4!8Gjs+chwZK&1DVPErN0031r!-Z?ZACUqkfWcgS~sH=i( zr@oj_0idAwC*C=92@SWsXmTcTjeF-%gt!WnB6%_(LR{SonTdN6rpc255#p|aX)JN) z5lAL(4&abDJHow_EqjrIY}npN=tKoM#7zYh5SMu8&~NFZT6~bW#=UbWLfo9^b4?sG zP>K*Y7^WF}T#@yfug7hBE`hks1d@rn18@RyFDl3(?tTS1#H|Gs5SMu8&_77rLh(W3 z8u!kj2yu5jo0+(CV49J*Y1V5#;;La9+vA!LNG7iCnMC4RB4x;_L)<@ADu=kY00qP) z-Z|8AKM?nj_#knOd*@JuxVp`miF*>J8Hu~bdd)}NLYT%9cQAou;syf_*>OVUVG44H z8>JwJxGF#aafx>h4Ipt}KW%a*agBTDP=vU_C`HC&ToFt&61VNCoY#EBJp|KO;(kOR znYeQRClL2z1v$jkD##)3BtQXiiFXc7C2?cL2Z?LkJBK2~o%3X_iSr%frol8Lan;sq zKH|RqRRVGE5=bWQNx%uj{Z&B@aa$DR5cdF}fVjjvhZd5!mEwcMHSV255#pZQl$p3| zV49J*h1P36;>N->w#W4(kW5?=-~{6ODaawNm4Y1NzI-A_T;iQWt4Z7|FhtHIu5s@i ziV#lo+Ts2CO@fi2@&oUGD z3QRK|<8Fs(EOD0-NG5I}-~{5XP>@61847ZUI|5KZT;iQWeM#Iv@j>Dm_s*dRaSI>G zHF3UBITofFdt7VlHD8bWa6?N z67L*ZMB+Ay4-(h7cMe5}`})Dm#JvL3jKtk;z2+ls8BAk|JDNZ;abp38>^M_i$0^7m zZhr+i#0>xx5SMu8&}tG_AU;T3>lNe>ccp?H;?4vV5SMu8(0UR#ReX@R#=UbWLfp#xa!s7?7&jZH8HpQcz2+mX z0H(3TeSB{!ajyVQAnqRua)|q#f*j%=2NV#Oc<0bdByO$vAaRX*=TL;WSJr1H?sk}F zByO4Ynvb}tFpVW{2!Z4t*BWpFaeFJsA+EE69O67c0da|U4%Lykx9%}Hleoscb0|Vw zYm_46>A;6S%}m@Tm}Wd3SPRow;?5Dm_s*dRakGDtYvO#Nav)4I_P7G;HD8Z=>+S^No+6M;-0gr9hiokRAK#(hcLN#cXVHSV255#nyYD>HG+V49J*sn%;g;;LX8+vAD}Bop`Hor%OX zN6L^>hqxUol|$U`0R_Y*-Z@l5;vNtmB(8Dq9EuS4;T@TY+XT~$#I3bn^AUFvOk;_g zP9T}Mfq+AHoYR3>3UY|sM?ns8T>u5dCEhu-h{S!l&g4wu8u!kj2yp{Zij2p&0+?nb z?ycK%Uh@(608C?vyOuyQamxTF5OGt zc3ZBA^Bv=+!ZagsRn}`h;=a5!fw*@FBons@Z~}4L732{2f`T04?gJDMmw4yUdJ=cB z_#knOd*@JuxJ|cYCT=ZEGZJ@_^_q{k(J+neaoq_d6ITE@fw(>ja)@i8Acwdwew-sN z@y?-_NZd;>M9w6xaqk?85LbXwWDJ#W-JF@Y2Vk1__P8%^%z4e%<6eSkEO8GL zNG5JA-~{3xRggp6%?fgey9iJ~T;iQWrTc@pBg6-ZYur1BBE+q|A=kwDh&u_U8HpQh zz2+mX45qQf{p7$Uk1ciG@jc(2L%%z6 zvbl5UE&1I14n9-v9C{D%Msw%T?|y{4U2ex)+MPo?=rz1^=$|mI3GN&kG}{1mzu`W0 z=g<)BuRDsaCld+&af`ikXgu-96=d%mI*ib5fMN^8JBOA^rc(alu#DU}wBZ1A57mwd zQ_W|cci?{RokLp#lXZc~5Sm2q9NH0>Yz<5%)5P96^a+X}`CoTkSidcG%kjPLP`v3o zhxiZMg6Bscg_=E|vw!9Zd+t7x(7g)kkxMn3&{YbuscH$GrJ$a3Kr? zD#+e%^cO-s1lpN+Ghy<<)0?Aoa`UyRydx?P)oevJ(f zl}D>e{2o9k-x0ait$|71e-y<31}G%g68dv2w3*QJ3bGEpxq$9f(Ab>Ak%X>N(3l*w zoX}YcvJN*AnysKwxl}s{?W>@1IcUf+fO;s%-W7E^p(YBlk!=m3&wgkd$_nZVLcbM= z2chr=wsVo1GWx&%>#L$QQ?_Q5V{?=ud4Lwt*!Hz)rV-&h3e)h&5)sZV07Bt7>Ubs= zGV1s#ARPYqf7w1=9vx9^KvU*o@HpjSWRAWaZ0!>OMN&1$+0srQ!9wJ?ERhsf5A{~=z8WCwZOhb|0h|1<<^v#u)G28Yp zu|2vVO(+2yj7sMN@&P4?v<7(2`%TLG@SGl2)5TMOq9Wa_Q_fQ=cSFRnAUZNmdUL(@Q3UWkx zu!0$|(gytdwt9%P3rdmkaR0^XG}DMk zUxaC_NFM}{AksG!uV-Sdo?jND%2j1vw&Z11O6~?^|WPThfhGUI&yS(xtH}jYxk4 zC=h9JqDbS@o170lLonj$?|Ac{1+X*yP<4fuD9^$_Xm3p0!K zm{ikdqzpvbG*P7S=}pehDA$fif2tsxs}bqt3UWlcR6&kN4_A;Q($NZXMA}V3 zR-_{-(jtK<((q>ZSdlj1-)PoDq~p%ZEYgZp(}+mxmRpfVCi7nh5Q@|?Hkj6bY8kx-BCpM*-%%2M=5NR_jQd@X4nIE6tDLN!M7lvij!1u`AV;L%Q;-$ucDDRHfhf}O#{XE6 zHsD`|)os(IlOHxfEBHa(BVI+-+v_F6Zk9ad(#HS=B5j^1()jcy=W~^7N2GHVWXo$rI#EH6NP8>D5ovP;IU?P$%(jgq(%&n{ ziqtz1B7H(2iZp!4L99p{@b6LUA=0nT$}G~CQ%xfxy$z9?G+QN#|7JejGfpmH& z=QosV8-JHG)nf{>sm$U276sV?nH8st737F?fr1>7PE(L0(jf}6BCV!K+X+OGh7WXz z6=?(h6>L33I^&GYBJGuG8WHKgmnMjGJAed{7Q=lAIU@Z8sj`T4h4OAmHzK`Vq)K`!r(hpCy&1OY9pCbLWKon{CppICPHsD|U)^m+gZBHg4QN2KcjWfAE}<-(F~q;d?P6p?;+vMrZQX++u+DFcy~C5kjYy~+7~ z<=PSHOA4~N8j(JzAV;LvD991%xe9VbI#)rCNGB@DinNv@?JW>R8a|XHR;0myD^8xw z4-6VMnLmGVn(`vcq9amGBO+}E(^!#yvB-+SiKOk3Ce*JZ(*Gh=7Li`7yj#+ZR5k)i z5$RE}DUC=k1Qdw0JW-_a=}pe#lxs(%Jr!ijYeZVAAV;KsUuYZ35$PKWazy%=f*g_F zq97~Mbrk8v0#T&l16X23+JJxET#rb)X+dU@u1z(Ki1Z|w#)@=0fKZ8!NY7A^Bhn)P zWfAG;Ct2^7bR(4tmMHmf|BKj^Mx@&S1tM*oDAM@!Cg+=!Ye%FPD#(`Ci1Y*nIU=o5 zkR#H83UWl+MnR59zd6x1n-%G1iu7H9DAMp@GqECVz`v=khe+F_6d4cqpPrCr8WHJc zn8u3q9smgPX&(hSB5eUEi%9RDZ@pX6jZ|I+lp@lTV^bQDUJWP^ zX+@$)NQW!Pme+{1qk)^csOE z((oZdu_A52zaOuMNMAiRvqoPr#Y_EeA~(ozLkkycZrf1hhwlp+lum=r702K=k_dWf_S zN|Et!|LxIfrV)|;7N)Tx-3TB-r0*%n5$UslvWRq!a$!j~Qn?6Fib$(tQyP&@0ThU| zU7|?i)0>=&m1{?&pUknXVasbo`nrM~k^VwKj!17(kR#Fy737HY1O?e!MJG_CH3Ctj z;lrU~McROWD_;+ht~e@9d6C2Yk*TH;k?sl8P^6I+rwRa}NNwAjdD4*zat`-h0VRmE zMz1(MI@@};hfj0ReFsofq>&Y;@2iyd=xSD+)&UAc+TM!P7Jekxj&yn_=lRODjlav8 zYKnqvDs#B+uOM3>v*J{yAV;KM9cdfD5$QGsIU;>ZK{k@kr%3M-h$0OigcU1Nf~o)P zG%#q`6x4f1WESbqQcWWwy$q(YB3%L?L8R9z$PwvsKv_guu3T8sjYvlTN)hQF4!7m9 zDb1MlzkmXfc1RRye0r1fCgs`@={g13T#ZOqDaaA&$qI5rIzvH@NQW!P5ot#SS&`OK zq~9H8+JzzwANmz5Qi7=>4GbD4(vc`d#>0KfRMUt^|9WVGNM8n!AkxnjQL5@i8 zQ;;Lls}106X~^wWESb7RMUt^_l0R}B<%$t zL8Ma^k%ce9UZGn`5NINBp zG(Nq_`BmlG5$Pievbh?OUaufWq~BMNBhvW_azr{sL5@iKE69p;J4IS15Jeh3xGq+t z1XD#C7&J_zQ>SMZX;rFeM5JF%OAzTh01`yHOF@oEKLC_Pq~|LamUJVPI{>AKbW&_e zBhrO{0+Du36lr{VlXD;C+7W3B1=;c%k$!QYZ74^ie^8Jk(oG6-M7mBvj!0K2$cofk z0Fj<75Jeh3q%T&a1XD#C7&J_zcTdeM((_VHBO*N*rm>N91b_sQ&QXvf((!<@i1e)* z>)n!Wr1CAG6p`KvnPbfJQ5d5uV?E65S)Pz5<6ZLc6l zr2jp@wv8jw?FzCYt)@s{5QriTA4nK0Qi7=>4GbD4(p~#!7U}O&O(P<`7pAcyT?-&V zq>n1d5$VlKwGC?(WIChcB-DZ0Uk6Q`Q!Ec)zBQ@7ERa z{rY0Q-&n%;o15_cmQudo)|Bt-n(_V4=6t`q1>b+#lJDzV@%_FszCTdT_lMf>eM4Km z|ExXVe^JTzUv}dA#x8t+qKfaos^Bt>ycl*7AM(I==sP1K&T`%=Zts^1W_5 z-#^*G_s={Z@1Ixmea8g8|8qXyzpC}OO!*e~0ePP;x_rvFH8++$HhIe0vd1<*#eHkG z)Xl|5EYRvfDmNy@rsWC1A`rE5%D4W?3%(t8;WZnXLEeXEo;yVznkk=~-@#|vLo)#z zzje1y!h;@9##`(&DuZWZ?x5H3p_xy@xF&pP=5hnn-Nb$Rp_$lU*Nd*pi0uB*OyZX) zNIf)@&|*Nb1u_rKluV`kyC$Noo?NtR*DmkuPBmMm?3}p}&+P(t)r-t$-FAF_xzXh2u#EHU+TA|Za;jltHN8tLo?4q&92Vb zM;@9amD~?u&&s6S`VK)}ePkpk)fO2hfp(j#7|%XeOa?3bGD266&d-Q8|)# z5GqxWItE<;=IR;#~?zFDaZ=y3PQIC#DP*HKQvQQ{D*zh)UZ^W-k)k3 z5l$^kV}-L2KqwqX9aqFcMjdAWN*E|@KvU*oa8u=Cq-B<^JqS>Apfuz{mGbqmwp=#l za+uV81t=IO#XmHYM)B!)Fy~(=*J?qTscuq`&2_>>fG$*!BhnKTpic+L3gJ{!|RMUt^|2W!;^hQ)RC!=Qpgd(+V{}S8d zBL&%DR9Xw@RX_)bV zd0sg-xd$jl-=F4Z(5(!F6CM$(8#y8=iM=_Ca?BJBexi%6f|$9lJ<8Z(Akz4UW>Tc_=}pen%C#fXVg=dq8j*f7)HakO($^K_ zi1Zf1(N`5s}^r(^!$N z0gxclhZN+9^jbh!L^?pZu%sKQ%mkDo(l7S3<+3S_NZTW2Akz4UW>Tc_=}pdmP_7-3 zZc>oV)rfSRf*g^qQjjCklNIEMbcTW)kq%do73tR$X-9!5(nfx0rWWa;12T)WZ>niT zr2p%mAkq&2B#5*r+=q}O($A49i%2h3-Yw}yD)+NQksEI!XZO=%QyP(;0Voh@{6jM- z()jcy=b_5ABhvN?vgI`*{ck_p8jeV}E65S)3kq^XdY^(EkzTE!s@(iTJXIqJkWeP6d=jq<`sSy<5_aR7zN) zWRczzo6?B%RX~AA;~$zyk;bPtIbWe%J0d+pLAJa`q(>;o5$PBOIU=oAkR#G!1vw)9 zq_=H0E7Fk^>FWYfq>cR0OfAx;C`HD3(m(ByW*QOc&tV#hG_neGGk{Q}ma*AvkEazh zA*bIP3Ed4SL8Ot%{ISY~og6n)>c;_!iZn8rUl5zpOy>6i6o@qbp_!bPk56xM{-~F& zvNM_gs)B5J&1C)~3bMV~tTTNq}$o@{RN^(8~LG`TBIlT zOjBND#c5QkX+)&0U>YmZuX|X=9FcZHnoz%vNOvJs7Lnedyj#+ZRDK00MWn~XrZgg5 z0Voh@{6jM-()jcy=Sj-7Bho$!vgI`*ZJ{7Xq+fKm4dsaR4+?Tbx=BHfNY^RIiqyLV z^;#tmMcT*@&D0`&x;nE+uS+$Jh;%VbLy<-%^JfAGm1x`E9PZCnkaM`711LeHHG19X zpWUo?d-ya5-3}~K^5K4?N@|BHbTY-2bC%nrTF& z&%-oUr1t|z5b0J0IU;=&P!^FMq+D3ijY!V~lp@lK*py~WIucMI()fpFQf~3-P0l;J z*eW|BeNREQyhfzYD##J(JqmI}dWC`m9l zOo}uU`>QZB8^XPa&D?zJ0ktOt!)ikUL(>s737F?qk&%`4gZNkzN#=(unkKK!Hf(ADT&##-}$qpQv0rBAu!rTV5m5K?-t2TA?6Eq&r*N z25?0Bo`M{aKC2)r(#;gM+3DYNCWDUC>X0SZJK|Ikc|G(Nq_`Dx|a5$W9uvbh?Ou2GO9 z(j^LVM0%)#9FdMxkR#Hr3bG>IPLUP}M3FY~Lo>BV$F|BW($=Y_5s`k_GC`!T0Z0(( zKNaMN^esSHM0&b%VM#Yqxeic@NJqq`G$Ne?C=hAd0sYQB2^UNYWHPtjC(upt) zBWYyCsV{&~q?R$W;&hOLoXPxQfD%NyLEk>|N;B)-PL7)?^?v}0iZrs~v^F-SnaqC_ zP$1Iyhh}mzKR&(5`E2FdnarP~AX{EDnLl1ZqjKwSX2q$Of*g@HRgfdn&zst|aYXv2 zf~-iZDbkGsQKXIh&`d4Tf0kwz>6TQ}h)8dNX{<;N2GTv$Pwup1=&bCpCVl%5JlR^56#pf zU0;}4q!*-`MnpObreP$Fh;$TyP>GI6k5!N(()|Es5$PWbtanSg5vj)#C5!Zq*py~W z`XZn}r11~Uq}<}uo18CIt{st{q99vdBhr})azr{pL5@f}DaaA&F5k9|Bhn8PWJOv_ zk-jVtMcT*@&D0_-L@6@PlfLbxnMOqVAWUOLdL4iSkv^^74 zQbhXguJ3Z?vMG&7yCY>F()fpFQl#i1f(Vlt!fI0}4bM|Ikc|G(Nq_d8~5nh_t(cYCFnVBHc`pUL+7j+Q<*h)FOTSznMjPRjO%3q$j{MR-^|4 z2$krF^mGL|B0UUH7Lk7TAM4$cZluzhB}zWr|13785$Rii0+Gf)G?OBYPj7O*LAiEB zdcJ~ed5uVqQ;;Ll{T1Yhbbx{!k(MjS5$V_ew#{Zmx}73@M<9x{ksq3=McNjn$auK_ zcxRevM5Ir_G*+ZP0gxclR}|!k^kG0*M0$X7VM#YqITcWfNL$9HG$I`aC=hA6L&2k;XqXlOl~zZ*o3JxpqW4OhLB1Mx-4Sm9lOo}u40nK*aiF%yrSIPbZ&Hp?%c^E`T@1-|Cpe2-QAziqWeo>$ug zuY2+O0=|0to;MD!qwrdUm%DYwj%#822eGeh>U)Jn#U)Kjn>MTPi`$eI7ZmtKOjj6w zp$FvRc~xDSG;dl|+M={ci)JmFH*3RUYC}`iIS#fczCM`=!o0d0i(W<9S9~kFTBJO+xvn z)z0t^@s6xLy7oBlgxV98Me0}NURK-Q>s-4>?NDzo?<8*a&f<42At5T}>t8#-8(2FCxfOX$!B9J| z(oF-Arf#mi`}?9iTdMO6pqpQPf9EM)URcz?P=mf{GA}Tng=SAv^S!y(6iAWTBk?-4 zFUI}?kJ4{p(6(MHe6RG{=j@9;2F6l@w)Cuhl~;lN{f$H_y&=Y)D}XJHeOr8bUiTRL znb=?HvGYvuAa$>+vES3%1K+251MxoElxKlK`+H(f@lWvHH1>>OdwPfCUF`2O_W$xe z#U4ga`donTS9t8=AA7Ii{Z_MQy3ak)jqS!TDD4>cEo$%nDnR?$Hsv?j!*ry9e4|$>Q@WR8SQiC(mKe4R(4xio%a%U$PL}nCLzw=V_??<-g8Yl|POX$6-y)0YBVlvX8u>hsu_){0 zL-t93O83B;`*<-Gdl-Ln5BblMo_&k;_D!u3-toH#?@h4J8Q z64M^iXXDc7eT)nkRqU2mf!A7_C4MhN?ro5JIo`{WrZvh@gxFAsZ)J(8EYKF#MsN`eRr(9HkiG4a0z?De|vE zxw_{~Ey`!qV7s?K%9e)zX87H-9{f}5BOyhbjI?d)fJ40RERE^+ND}X2Aae-Z6=}TA(9Z zt1DW+9r*8plwG0U0>ejE{<}i0tudT0@Opr?kpD{f$P)jCVZ2j~(~FS*iQZ(4bjbf8 z{N>-~@A=-r8Tqe4+9>}#70Jr~(caZwE!uvTcYTikx#0h@ zdhvf3#%fm}&yfGi&=>FYZpvSM?;(s*wXc{?1 zODakMlshBff0p5Ygz5j;`Tv38|0J+ghS4thU+bL(PZ#1Z|F+fee$y_UX||Jg|SNBZw%iXY6vj`Zc5jA!k; zIVlRP;w}83q=H(X)<+s*{fB-6cbPxJb0wzd=!?Jk3eTrxkBrp?lkdzx(sKMOqxLW* zODsO5>|qV;XP8pTPha&fKS%wNirL>VrRF60MVmtBNk>?xq!?PKlR~DNb#2LrKJfmZNv?D4h zh_IegBAI5DvT!6Mvl5aAODW&zoiEF$FmdG zlV>JWF(%DS4#Jr*M1&qof$G{dsQ$I&^@k*FGKg);`M zYYX6PhZ3Y<4ePtHm0Muk&h{=dS^SZZd9t|j-U0|s9E+a znR%mP+3Q5N)VR#SvA2~PWfvhIo+C3~mYAhw8QFep3HF!p8+!?B9mXRnpZ$tC$ea~> z3hTsN>6P~N-`x1mIVkokM#plzBuZMp(#uK>#=RP6=|u-t3!)A3LA6W#XFX(-_%Ac< zp=AJN_~5)5XM0+q6s^$)?a&70crg~1<2Pdy+qos|eC#PVEyy{e7D(3?IdGnn=l>G_ zY1IUX#QzGUYmQ%G{BHxVjAIqZk28EN@td<}68~EwReiTM@KuCTGcJlw!}!lg8pi)N zn2iYIe+PUo!dZ3&YQ*^80p*qWUyjnyODX&@2A2VEXKKbzrf(0l41Xo4c?-N+VfKSF zjqS0g62I%;{vFY7ozV^j@WE9JwoP-BzYpImYjgN-V)oFg0_O?Ln`g{iRsV3ISPgGpD2~Wy@HTE?v=3*eTZj?z0%v63%zo_QsOUjpl{|)KlR;MYHFCD zjAlH}QUMa{7-cvXU>PJz`uNop`*@UQ+>+=^Ya$Z=nVRKiRAC&J5e8!$%PC_Ij#^}0 zj5ZQ0$VGj()=15G$!0DicEOiol&}zG?t~I|MILSN z=ixUu#(%a=eK#Hd`=Dh9pbaGcSL3rM<`jD(hZ4Mp@xMFx>IY>en;nskO6`gLz0ms1PvSq>Eye!&$NxPs=OppJFFdmUhVj1- ze(Ct%8|AJ>zC)pfD!dQGDsBrzJc<9E@U0vuy@c_oRT`r(*6X8Tvb|6XV%-`mFj|U@5XS%B*o(^^u(um(=AjOK zk&3Gq4U7Lg4`T1*=#f!`M@WhP98obUwE`ZVM=>5U-ZIiNqH;7)h!$#ZhSy zJP|7ntQgHW65;WeD<#x?87%3W@t?lxyGi_K{NZ>;;y?3ggSf%i*Bak>1ZJGAKuKCc zFB1Pdpe9YB4~`~FfD@7U-xevO@t=K_af;>SD5C_w%Z(?V(X<01F`}XIpQ}wg{_X_YZs`o=}`yjV* zsG*Jj%-usCeb7d{kgI;1#Q%NGG4oJp;7D&I)=^rZRj1>V@qY#`zbe7|IPk>rzr_EM zKqUSj1XWLlE#v<%#FG8MVwra!c+l~G1WL^KPhMvjEe*n4eM|i2_+o#sTZ;Yvm-s&y zoa^|1G=53^AB|Q&5KJ@v&j!n3{GablfV!rEJFZwV{?A4UCH{}czGHw-^^Qf&dV43} z)fv|fb-~_afVK7J;58S@Jp|G8M64WDddHjoUBCA4h!vO4@KB94tYOG)AzGmyE&^oy zKg-1b10wN%2HJ56TI_7J+>t25WU$i&t8OLO!}vebI|p@fexbD zes?NTO$2Wz;_v?w{~1#l*LVie4W%o3Yf5UwioXeZ+dMmfd|<}beL*ZRCHu@ZkB@EOMco?yBfis^?J z<9{`B?`L8iYp@4wCH@bFp1Y&pbwWR_f<;U4)CDODQG+%pmt0XIfvB0Xg}a1P@;oj$@o7B|6ieQ4U7MeqrcvTK30co2N?gicz1XoL7(RZ@&9S`tc%c^E6q`2 z3%FW>vi=>b?5{)rzw(|0`X;z%{J$4(?_Z2TV%RytzeF(&>WjMDB4-A_k~y%2XMp}$Nu zQHAk;G?;6Hei6q1S%|Z9puKq}{vVi&|22qw_1#*dY%NT*?2IUBKzFQdouR(n20o`uK^)s{Z{wKs9j{kpS;{UI`pL!e6XPcv+4)uPE*Aw1@h)azB zZ=pUs>aK^Hf9Gw3g5E%{9gSY3+5h`#3AS{X9D>?`fC-gk+>fHg7N=MM4vm5 zV|}+8^q|*}sKRH;wI=xs=x1+xPnqk7IR1aq?B&}pP~x@bI&zGc{4oB12_%gFKgRcO zQCl7Vf5N2LeE%o76{DTc@&AM1?oRmjOzs|7d(3O)*MIz9>9_GZ_*47^UTdH6f1c0r zzr_E~&`NIv@qZVtuaWrQ&u@w=ZYKC|pm#p+mHLeTUwNM)vYd|VSo(TjLf0MqSw7?c zbLg4BH6w}<-X8uLxUwaT|Gxvn68~HHzrsy8<$k$;58h2h>+!}2-oYGEk3ejnhyGXq zhU4N7uW35fj0TpP_%j7+j>ey57*UUa-j*Z&9AM(ljMVsZ9%|4Hv2^+Wr}%R_+I<1y zd~ay84UQ{}KW8MwpX+el+j-FWG0^lSh$oCcPn-C2t%*Mm<5<8^&0-waZ}u*SzV9;e zXE}PljX#S~c8NcW(fijoApSh!{ToM`RzBw+js~Z1;3&2UN2Wqw;?D=(Cx|w~ygvRC zC}6nX!5i)~{`B>4^L~y$8GpWy5fkIjI6sU(Wxm9ppCL|e_RdG|FZ9Ry5`R9y@!~S5 zf14S9cJSv_C+H2$U_~rTCz{g0xncvR)1MI5( z^+2Mf%m0fBB$2EP$uIdXnB8xGb6>chd4wKz&yQA|1qlD-Is@7lm>1ufo}ZzOpdk|C z^s@WL89!Qb6(ju4d5CZ=z7UvP!yq}*1M}g=byKFL4foK_-HOZ(L1;%Su11yM8`s2S zhJ&+ka;5dyL}I@ z&)^j)rSQNxUzz3MTqjq}c)gdDFkIQ=Y8vaq+=y_^o3qPY+1h=hA6|#U>(x1DEUn7< zT+S&8D_rMiKAbU@Rdl(^OlsP~Ak0ZxL+8OYJN|K9n18aqNgur4f$Lu~qs=)1VsZx% zXQXLMe_Y#Zg>rD#x21M%z6F7s1u??A)Eyq1^ z`j_=Et{-syl-9g9glxO|=PD|#_{WyuH3iM_68*CbTvu>6UL(&rDc(6qjqsDJ6WmM9 z@{=1?#+6hl4{;*g6K=cvCPL-#y`9Ow9BD%R^Q@kC&9J4p(!tqPS=pxkxjM-eT&_v9 zGW)qI#qplIab4HypR;RBCHiNs)HU_bxqPmWwn1rVBYAMfrlUbP*A=IK+H;1EYamR; zD;0{7g8Jut7uWvS799-M1@HXM^%K!Q*Zx|;hWg+A`U18vJ#p-!mr?&+;X(Azb!=Ik;C(`( ze`+vXa~A!JDqFx}_l^4Jy4L{IunHqv&JdSkPkU1r&dKvS7T&AEwI1G$%M~ilxL2Z` zDlrc01P`1au1e59z|1oGs&IK3aH5`71pp6P}me~Vk9E56frlY6XQ*6Gs!Tdlm&f+-780x@msimJPD1)En)l;WJf5-+Z(?Tx<@?61JAP&rtu#vkX> zhZ`&EzZ?7y!dVCP&+7w3|6DhBw=(#W9z4{WfU;2k69fGZ!dXeE|3UCE48I1$-s*oC z81{lziP!&Nv_*TQIudo`8q_qj7gy%nBNq?nTRzU#4#5297@Wh-!r4U$KB>)F*uM{I ze2CHiRP2k_|8Si39t|(y_-6ptt7ZoJKLYLSV|J_xGh5@(#`94M(f?%Fg!(_&=>JGq z%|q_)b|TIV#^aB7$Q^`so`}~{Se}Yc1`g^Ew*FDIS}t zujs~9ZP818=!E+3Zggq&-w8Q&$E-yua_$Qo(SI*kiT-;4=anR)e`+zh^}*^1^*;gU zPcxuT-i5dyG$Q)%i2`@|VSAuz5>c0kFX5()m%6TeEu^23kN9!Dcv*BS#eK6*9ilDqwsO;nz{U3>$ zW6}S4NIe%hw#2L$g!|dfPM*r7hCY|%&$KrDtTATX68cI6^GZ(F}pZY&7CI?sl*J8eY zV^04UfcJGsc@JjPsQ;&-mG40}lVKC;|Ch+|Iv`azXWw1_@1g}C!yjiVUV!!=$2t5` zoI{_AIe_nBM*U`-@1Kl$z1zKCV{ZZW6nlR}$$x-6C!%iGV}9;p)Zlr{T)rKne@3(> z;CL*QJ_<@1366WA{7qpy%IJS6`kv^YS1gT!mZ<;nXwyQpB=5DP{;Tmf0CjLT>VGoy zKNL}d`acA!D1$;J{*Qw)Mq%G<M=2lihg?%wkwFJdG3tq3pw-uOOWcKk{rT*W5*ISMLU&5*f)4q#RY{P8pc;xyb<|KxB&jk8^0_h(EPv`IE z|0B#@-GrH6jCcGAnBNio-+)i*pYym@|IPeR|6gDhcP%(-=2QQ7nt9(3V$|t*`}j|x zw2c3v|NmkZ>;tdLUjlWM`u8E%>HasE|D^us`2U9fr}@h;i&Wr$g<4em)c;e^|Eos- z&my1^PKIK|eko zmNmf}=+E%F`-3p=cP$>k^(b2PVXx93>{CBI{ZK#a0{yh|S9qQMP0-JtXwN>r=%*tX zif)hO+UEw$R4(;)qCM`$Y}Zt*Ah3OI$hFTlw9jYg-|SyM#vJls=!@-hGuXY>+m1ML zKjt^xZIq8W0F;I8^BV5ue8iiDGT-I>9xE4YpJqP$SEWDOFZFBuPf_~r{sPRn{nI<# z|Gjspehy# zCn9rX{4KLrwBk38va@VFBjm>MF-yoJgtRWtM0x%x7W7Gv%#$_cd1RK2XPDCROwHK} z&Yl#Tydcuv9@C7E+$oA9iLvokCK?*-v}PguMBIfPoI5?O1WkMVoh2K+61 z*$@EniY;G6?DX&Zh@ z>yc^JjV+dCBX6PpId8?;CF-9F3H8r2N3zdzdd^s~M=v*@2Q51hs2oiCiL;H-?q2GKw7<>DP?JeSU< zPqshrbKw=49pRb!C&!iW%sW>2B&ZHX|DBK@zwt`ERzPJAD_om2mP;G-LA zqV?Yw<>Z`6Pn=8eT(WmW|2*@_ze#lC75QAHkre>8c`?fGqlLI}E{ytT#Nk{St?H+L zKC6oHfb&G5{(1d>J9y?(#i)2bmxuc2T{pbuKa5AF2#Ighe^=C;vz}}Tt$)tT@t&7< z_~adXoZH}Ykofee`slw3dGIR#5hxw?KLq9Fv#2U?z9{l$STET0m|AV1U9v^+Q;dIQ# zEd;~a^nVb}5hmsIKhNm@D0nEsnZt=_l_fZ{pJ()c7V@q^ZQ7uQGm%R+{dYl0cvPkS zsS_Tpc+E49Up~HZ>t^=w2*=o23Z|)lnG-VxDQ}GbT~Sxje}AOrst&JE=Jn45q5r=4 zR)xKT@e1|N=eu=H@oFLJe+t-|0?!_1f5spp42Ei&g5k0FJ`HT|i%+Zn>6j1VRa1Le zCn?`rV}^qIpMw@1fiwT{$Y&ASz7h;qfC1`%2F|Q{!;bnt4s~4!eg=U3EF1Mt%T8zu zt^X5ow%7-4^L?ZLQ<3K!oV$C_D)oN?@|=*xJxcd5d@!yrgg*P>?D_$t|En-#Qie0s zeW0LQ9Q_}Sx*m)xgR*Qt#QYxP|AT@4U%{`X@c3(7Cwd63P%Fo41+GfD9gHr5o#_8{ zaGhQMPhei94@!OmX28~B=Igg;-}B+~UFiQq%#F=M?mxwuFZF*_z4hM%UU*d86PoXj z_Na#1`{eXrjo)OQ@qyRW^J##i!O0#O^+Ww1gt~I(b}w)^(&(R8NLl?KW%NG}DjkFT z+n~Q6h}JqNOY_4n)c-hFUAZ?G4cX@fpic{a+R6|0mGW!>PW^x4eGY6gW>;RuwNmxf{|1!mf0(_Sm18)RnbR*{&@xS z2DJPJFx}kGuK&4c$!f4^^)o-v&%v01>jtbEb3LM;lTnjts0sCRQpWag3d@5~TI%Oo zv<~%iJ~(*@v*>Lw&v`m>J_>#Cc(5=G^Gf?*KJU(Y>gR7L|KHGmXW|*d1N)`g@ zNc^OJ?!est&%wxa%sCFn{9(5E`7TPf4s%s(pC6h2H6O9y9`vu@nD$v0w9h@L;U}tn z{)W7=Y+?I+f%ZAne**Jw1>RV{jnDRZ!#l`79oM}dh3o!$_!s%ZyrX@#&+$I{S4%&O zf6iFQ%#3_vns85;o<~rbFW{Vk{0gmQ-hlgf?!?(A&H(V6Y%;gNvoM(-kU1)O4uM$E z6UTxwcSS4Camb7j&v1A)%oh=^rqY`8`7(awNHwV{dpaVTYuiM&gW#X{#+GiUAfxKb2Dx%C)b;KuORP0<*1JJ=b1V;p8NBjemr`g4|!=LMXj;v5^#ccsp}7KXD@tS8S>Ia9#; zhodLn9mZ$Ovi_Ao__SwU=V0s46+@27_|#a|U#`F4h=Ci&+5M5K8&Y%B-3{Z3-Z-9w z_2-ohL$D{TKYMMo{sR$-_Q5ej>R;tm!(t#_gYjZH=jh^;@*j(GVj#-Kd*b-q z^!@OyH%32AOln>K(TJ;+us9O+KN!*Rz+C+gK~y^t$6eNcBDh!xPovNRH97uS|Fd%S zpM(6zqW)uX4-q$8e?H-)JxbOJM-M*fgkvh<-`0OH>c1!IGbmF3;VAhq{2h!K*AM*j zeoT(-xUv3YQ2!%P|Cy-&{-*wi!R{!7pB>b{2FLZwQU4`a1DoO0e+9-ytp7DQI-iS? z&@3DQP6_n?I3o6mI5t;e6v+C&j^ocA7+cl^YgGlP>;0zwmtsB0N6fqtBdVX^W$V8u zO2a3^@D5KU#69xo33{#@xdHp~&+R9Jz*}{I{X(tp6#f|G5}P zaJ$>7|1VMh6*z;r2}gNu#r{56t?GdCw(&b-)#f|gN5J~84fOv<=zj%{>i@+W-6VgW z-^c$cj!m;*yV<1YRRyOa*Gag3V4*4h!Dxx|QR9$5mVW_$m!joZ{$HVPS7GJvER&w) z@8z@nJ^XRFR{3SDP&M}l;0}aJp9ZhN|7Y<3Ec}0jaZeYp{C!+29r}L`y-)l9!uUVf z5B-P72}aQHJ006!rWlED5|M36{x$_ODeSi-2Xa(lJmY*5;|pIB;~9(dZ8Cpo=gJvf zn3^$?aWmh>vo;=q!ebhvK4$>AN)aA|Xpyw>d{QDU-x+mzr5~^FU?dhKDJ}OiFV5`n zYAZ%>u4eE#JG{C#Tm6|It$7WY#Bo{O;I+E>=cwhVDy*^n<@n0>%(lY7l;L%Y!k;k7 z$Ye(uFiO~@rQ~=f$7=G=qZyA9;ZZsvF?MtHf$h!G^2pAa0ggx57IM{Na#|w7Kj+tE zOvBW?x>WejKS!(imn+D4{N&M{SESX4|1!i#UYo{qB;mhhFa}7g0k3G|_@V>ik?_y> z&M^o1&p(I67NZ6^cH&x*j4$L0^(-^&yvkJgmn-+U5=1UIO2PF5X+<|!$UnzM{NE<> z@7r&V)STTG{yQKl=TFbJ=jep@gAPN>4Z-n{{P%`3`()yu&wCL5Ig?e5G@bE2 z9IyKDFVDdvlN?{QLRvnNKzc`7`|;Szt8^K;_>7gd_~gt!`OC&XpMOwCHW_kzJ>gcG5n7J|HlRVkHr;DQ_>RyjhU$H^S{ZoY9nc~F-El6EZySny z$o~k#{~(OB4nX^L##nkEj46laOOBCl$p1<3vlufSM}hyTDEVpddUD?MGodt|Z*|0- zVsmg^m+*fHT7}Oi$j|>dm}{Jhxr>`|-QNkA4S4|Vem%ypr-J{B&2?AlMF{!73s>0i znzSJpcS`@i8~i_*o*3vB%#;ZKzXAX68UA0#eZs>3YkAY}gDBJ9j7tX^{)gxI=LkAK z|3_fFIWgdWJoulBvzvWQ|L0xuv-0MDvElzP+#SjOe0|YX#dlp>TK=b-G378_7$$$WBXV6 zb*T9uzq!x${}i*S`L@SQ`FY+U<^KxoF@D?%6}*Y73-fL5{U!J>aCL|u6LIz=<^P{I z*k}3wlAs@Zwy}Hja`Y%0&m!zETMmwD!~>7;?imJ;fZWIHcj!T8foy8|CRerCYnCj| zu?W3#9K}~yn$UvtL2?Ze=W94y6x~=O-bW|Ti;F)3hcjWUh3lVlRpIS-=JAJq| zuzUSEZszz~&LxuT&ubf6MGKE#9FIx;`9FJhuRrh1V*R=H%(2$)_2+z8OB?~XS{zq@ zmX71gaJDa61iAKtqfgF3@~kSlag4%oGVj-7{oNYyI(R;BQR>g9K1MelEqKPm(KhQZ zzpYJQGkzieQhzssvi`g(cu#Y#-!rEE9LEem6lMLpV;tyiw*H)tbVu0obX|_VSpSNI z`gcS9s}OmMcRNCN$MK*D$6elaRDe=;ce39bzj^(3CmeZMfBx3nVTju8aTFVZ`g1LG zvIg;ea!~*II9i^B`6ieDeQ^wLhnT|p<9gZM>R*o1@#%l$pXWz13uiOo6L~n2@8ebD zuVOcx&w(0-F$V7%Vf_!ZNzJ$JSj{U!8Ro*nXw+Y3!K@MM%lVw+P5qD9t^N;~`mYY^ z|AXD?{{ZU066+>m{g+wS=G&vl`%3T6nC1B)j_o(?R{tSE{dqtt&U zjwo*ZF2gZm1?s;VGkK?Be0Z~yztn#luE&=8zwF?w|F^mNf4E!y=lbM-B-Xgd|7cw0 z9o?3i@*j#BuU^Ri42-#=+gVt5`AJaz4JiM8Q5aW3v-}_7`3g(0g7WolzqOYAVjE&%8tXAkElB9w{S+^> zwVU<9Z=Ai6Pg=+k(B{TiNSyC>ul%-glE)PO(IT{#&y6vtt~Z>cYwJ~ zVgY%hABhOGVh#D?yJ&@_p$%E!KK@ChVLOB`?v*$ocDDCOAC+9JfAJSGyLS?9$IlP?WAU$Yi63Tj{Hp}igFkQm_mAknzI&Dm4VT}ocmEI0NRnNMX|r3cG=EBg<9OTP-^ANLBg!l?M6I;7>~ z9VWSrV@Tc+K~5N1s2Z+^@;m!9OD+E`L)wF7rmk3C&ew76o_Wc658IdXG1MV@eoK5( zXZ+t1T$Nxu3J0tOpQX(nl@|Xv#!HWXyndg3SmGahk^FC6#t9w&ct5R;e|+vWpWiK4 z_Uri90y(nfS<5gEh0N~We(arL{9}8trg3Kq`5#006ooSEWyIlsXRX9I~md}^$X ze|$80=5_(z7QO=9#$3#uwS`U>y#$Rh;f4pq!G z8;&t}7R>(6ISPq4JhscxPkc$AA%D33(z2?^Iv};&F|9Fdvqe%45%BiTJ-S*gtqZP7=SJfiV8@DtPuX ziGRG)g4fE+b6^+|_gmXUg; z2evk!EM5Uc@;`L2yleq(@@~EcZ@lM#>fu%Syt+lkf9#<}CN1Lt*N+(ecqc_yyod3x zGjfue%N#f7_sJe>5siOb_oCY5DHdV;;}i0!Bc@I&Ulq>Lshld9SIe4cW5!!Nxjm5kB>c&Zqq_F0uvsayP7X{OgA6qQdys+u(6;WjGJ!7;i9UB*OSN&|Fc~5B21K z{w@WA>pi?`%!!m>_JY^z@Z5hS_Jr}T7p&-o@sBJ>{Obp=d!TgPQRn~1-h05=b(M#{ zXU~i@qmf1$^)8L-sP`_*lGQB9mSxGkO1352GO{E~u3*gA;1V###DKBErWj*GTqyw? zObtDb69~Zs0wJLVNFm`S@8%{i@Bd%l*>ld+bH?!AyT9Mfn%QT!Rlc^qz1FwBwbm@8 zWI8Ea1;%x+=W|z2UP8?3g+0>GIgU!WGHYFoZ=&+L5hiPE=s*4Z{R+ptOn1C+4xjm}Z}fz7zNT?_B9Q9P|xb}@wY&{PBXMJcU2fgOvOXiFfSLV{M$olAb zwYv`Kqh%^X{HDv|&lEW4xr2poF=X~C}{(`VJQ^I7dKvStJGl6g}Pu&}MJ`$(?(~oWdIpq3p7Nv|MwK=#e zi#y5;M+#j%s6Z~x&oFd_ZxeaVA^r-|s{dR$Sxq+wiCzb0<@#?8n)oo$zn`p?u^s*$tFMg2FuNBAb;f3*Z$-Eqg7=N=C;xYmch zr2m!@OZ|5m7Ol{KJ4m&ToHJ5P!t3r7Vze@2!Tp-mf6K{1{dWe>W-!7y3rN&|yLfgA zlykqH-&X&fN?y?psHFeSAfDsVx&Awc`;z`U3u~#tmG%pT4Zvp&Ea|_Ez}i!A)sijH z>{X1`<@)bn(tiiY!F?whcrzC|T*wIP#-je)hm~{{Pckf+w*U4KYYVp4QIzc}KkC1; zurDuUG+q6t59T?Z$d){##5*vl4Xbzjfra9DaoUn}d|A|MX{BNnJXb zJnG29et`3LR&wVqP;wyPu`fcN)PGl!;v^s$$&;-}oco*XEb70@k;$#_eJ8Ru zk+ICP$>D5rcLk{{k<=sPx0@W#ub}^qk$*}5?Sca8zoS_452dOc3U zam8%)-?do5)nMD8Z7nT`<6P~4BIm*7vyzXg`tMS3s^!f{jzR1W;I0xkP{Xbv7vVe9 zBmJ%iyCu}J>y!Swn3)y(lKy*;arIlE#$;;g5j=+<1>W=UaNWeyHmDo=?<(?rjI>)> zab+j-R6d0CJ|3DzO+f3{_@*A=v;Fr5 zs8eeH-3*r24p%F`hF{yxq5oXb#ZYSh-OrsXDuw?0VsW(LUGTnp{r4o#A7=#PM$WnZ zbG7+*aX&N6&g9*%;D6}9=b_6JCH z;m%YbSe^8r`w5IdlInR<(tm4Ht#&U2N2eN)Z1vMhvtjla!R^uOA}P`tpB}x45|ODSM#9SS>(L|7}b9#0lE6` z6lmw#bQ^$P{kJ}~|5iXJS36VxEl>LI+@$~f<}{PsneFZ%C?#Cr*!BlX`mlK#6Nnm?NK z-!n=7-9SB2|2@R)FXj05r2k%o)(;>JFEfwoS>}C({`)pFB-MZS!Q%m}P^JD;L+qoJ zFR*6S4vxvmQ|e0A6Z&Dh{(HDb`h5#&uVEdeFHc8(5-pg#f z(0^Y~`tR#_{d@_Zo^t*7e&Fn=|Nagit)HO(?nU1eSgmL;Fux4mFXPYU%q;caSD|V@ zu7A;s{+pTYWLE(7-;a=w(0|{CyE~Wzupk@FT(&`3uKxxwH{f6Ju2KK}I}-Kx@KF6X zGy7NOj{PV4?>zkbPfH`4%YkW9_8c?Dvh202?6e4MUk`Ol`fmYipx*>Nde?uirv6?< zye(+qBWU1Dq04HdcrtSktiSt_uIp0$y%_0o9ndS0%;OwUe-ER-_aag28BuKo%K>~( z1_S>lWbhJX&i2bC=yvPxb;#y4uyD@!5oGZ-NR{>Xx?bw<@owtxU8H#ynYo+%KMseY z{=Nxsx(Co*Z%XxdAM-Zf3%{?XMy-cWL-D%16$l?q_4n<-bs64MBf$Or)Drg|I|ls@ zAG;bokT6t1En+ zI`DpK_E!sIv+tz(yD<9z>v&zo3{dNDD|d5PSAKjJ^>=<2_4kvh{?;K4JJIIzv!52$ zXDz@t0tkA7@88?``;Upge*?9jgTL?Tz~6UJe}4dfU!VB<6QuAb_!d5!ya2wR`1{$! z-+xW~y@y)$MQHmYJh(M=9;X9mEndnqvl>}vg^>DlF8q7*(rFRVcW=Z{AJeKwxR;+eEccw+1hKW4PqQ)x?1gG22N15+8pwD;Rhf*)zeS=eT;ZHCT0%W z!=yoVLA#x!uyVms@SuP7_?uQsnYO8zXDbD?oK+VbyVi;xV{~EdcMPZcAO}t7%mHP< zwwiW@>Vor49oyFKuFWsts2+bM-Zq?eaXBF-jw`;BAom=3>I?rJhZsSbmMZ`4YrBhR zwIN31T$@L$r>p9^3VrqXYbkJc@j$+N`hh#*(-;1`0+72lmh->2@w(1A4GZYw52AGw{GUlK+I6)-%gP)^geKDFbFH6ddJZSNLjEtK7A>Lv@8|>nFQrwt zA@P4F_5XZY_~YsGcJ^BB8JoqlqsG%N4*p*Z|FxS{&;L`fZft<&yQw$xXi2(j;R4!X z)rO1dfyn=>=u^Bh{aH}q{cU~Z z{}uG&t^YayKimiYf1SSWiPf0 zBLBZePfGrOypR0MGe7_G-i1A-Qfc|M8AmLyjFYGI&eZuc-{-mIspA~E z`o40o$CLNGEX(^Sq2!Mk^+4~Q9uw>Ddimejk3ef(kIb_wD%d$ z%tLP}bBkZ$G#BGm8%!-^_Q>p~>c`|cO3dXaKMTFy3{kF>36D(E+Pf5HVG&BX95nV` z-)sLY&*#+!d(3)Z*@umutX^t4o<6lNU?1Cf5l3iqNOH^~g}qN>Mjzf^q4rr`LioV> zw7OuaVrBnIjOC3z+<-~^Eki6U)!1Smer# z7joZw^-EwPtn$}&cBPx1jncW6CqfeXMQ;nS~5swhQzJ4GGU=RiF5 zoU(R0;vet`u@)6^(xXv{Rr)MZ?i$2ZtEwKMfvZ-BxC+m!>g$L5r#UiXp89gy7tZyc z5bF^Ty2g0=cL|pq3V$*6U(`%#6#7p)gz~8!$W`U!j8xEDOBpnNwITeG^+FGcvv1r? zt|5itJ@2X|dbsK9>AX_?;4HHrsg%_4)|TelxSUg3lYX^V#hSC)eAJ@We7(|s_xjIL zl^^{`^|scpEcBm#abbPZUt2t#H|pMLde*rQqB_AVX*Zm+K6=##*8@?;UHvZnXZ6O` z_fs!gX*x2&q1;KG(0}$nM(|FF8_rcp{|R5dLY=U<52N0>LhZ`uv1edk^q)SHBS@?M z(-P`_X0AmX`p>J-f9~j~wPP5u!oSx!w(1`7uqK!5Kl2y>G~o;H9)+%X?YcZZt-gOX zlpMrzEG5TYc-Bg#%01;g^mA7l_1w{dB*op!FxpJ|{8(3p62ml2KrkBnR%pIhIbQpv zJB5$s*BJ+1R~yuS?r0GD&%HABUef<6*MFmcCFVkCBW%WRN1LVI{>?zEZ0Kzr`cGcE z2bz06sWG)_)~9>-c^c23m}%>&Ht2Vl>p$1cbJsJib=RQ<#)e=PUz z1E>DepE~rP{4Lji&Q-T&mg_%fK#v8>pjNK`CR2hj$Be~hrk;R$ zxK03@X_TwwUR~$xDVuWuE|Mcf;A+Gvw3jPVM{?$bM`TWh|eg*IJC(ZTW3Z6CL3pAdx z<^XYD^q=zzl!#U=bM9WL{#%=19?Sh4C^n4TM*yAD?>epvDQhac%k|%U@X-_6da7Ub zAmUAeqw2q<@T3`g>jLs!$?tslQQy5Xm_1|VN zSO2-z(FxE@Kk@!>d<-5oOZd(8pZoMi`)_RWJ9AxC<1U3-Yk^=ZSg8M20p(nLaP+bZ z{kN48e)sxs6;MoJY+@Kb=$paj6yRL|E!B1IsF~}(olr~P{QitWsQ*smeiE=XaTV>q zHN;+7Eqn1CS`JMXGbW+_(?fe~VFTO_{pUJe`kc;#!nyuih_s!?6ZPMAQqCs+Mxf|V z>i&2HZAUiLf2+xJ7Jf(T_*(%Lci{CB`fm?dRU5XEQ!6>2PhB{boEm|6D>-d}Dm#Jo zOvYF0;o1(KUIgaqKX*bsoAT9v`sbeuJys%Lq5oEKc5lTKh_MNa_y+LH_1_LW#C&=} zwcsHe2jJOOAnA`MRwJ|t{kIlqmZxJUqdn)K8MXsu9ius+|29(29!lB5JNFORLTuB7 z{&V$>W#p#*I~Q2jA`j<*?c1-)PdFKlT#)o19y-uT z{dbVEO8W0yMt;A!>cimCtP<_Tc2jki_S<5%jxt9ZMGIESkPj##<=yAaBcLjp&G;iZh9mGs{cVr5X{V#-=bO&CELbAWLm zv{L_B3uf|s9(+3h-7iP~omJF-dw?YL->Zn3>%SYJL$x9F-8|J?%yzkB_67y9oSAQ*$ek1_P0{_=NHGu>hI zP||Ay$GJ=cF%Fgn;#|2++T9zY%&@Xmdf6~6E1?+wVL?Z0;x_20XR5&G|O=zTLa zeHg3xdU4#%H!jVc77K9rx)@ee3)-WkGz_a-k0|B zc#?OI@%JP#O{1^tVkGQtayr(o{~iI4&y&+fiTxzMk5yYe@I}0j8motO=s&T3xr_e0 zG3h@&7n_lv5lH+BB=66Y{`(r#+?@apd-B9?=)Q>xm&Ci2xN&h|ANB#E< z6q$+awSxOU6!qUnf%%hYiH}fAAEO>FhaMk-YTsov_)Pp*L;u|irE8GKAGPbh@8CcC zBlO=xtka(BzuUk`{r6_DQ2)I^oS#-rzmFojw*Q=;P||<@j5OVcq})w?_($@(6<>1o z-_wk6hyME|e!S|x547t)SKj&w`tPSe{cZH$bI9U1!MFhoKFEv*_1}Z3{rBJcFWP_q zt^W$h^8eoY&vAtO&vrokS-rAU$NY_}^0Tq33yz^^X*0fOgHPf*&iQqEnd0VfL^|{6 zDLA5$|Cvud^6Isz9BYoU9fz=N?_&he>-^xd$`H_-n`0OTp>%Y^GE3vf0fDeNrqEM} zv0ig9UWqd63p_0&|MS}N#iIM5-OKlmSH;+xkUM^59zF@U&E2PBk?^Q7ut}2v6G|H&bixhFE@G$%8TzEw{T?8`9HBy>$skcV<|ziT>jk)qnS6ZkkwOg#4Fa_a>ULtz+C<|4DEmcvE?T<=(zbU^kfHPzCX%=Euf&dnijJQ4F8{7{;NBfmNim%s zwH%zA2WnsrgWNCQU2#*>zNKLi@s`{4XM>Mc9tUV0TgeXH(uXFldD@mNfV+tFEytOCryLq0={~9cEA^%IU8!G>+i}Js;O#as= z`R{o?Ml)0n`9BSQPN(<30;ta6*=nFt{#{|^Y)T6GKM~6G19o}Sise9?u_G-#1!wV# z?{M-w5qnU`|AnL&g>^&uUxSr!6glPczY^Z=;aEfYn<%M25IA4I`>>}d{}*sxja_Lg zaJmYR7Tw8MRUGR$fSqj`w%cXk7V^J4$^RZO*~S~!)#@qK0QF@_{+-=%J{FE#{`a=a z|2DXIxG4V@W2xDWm2MTOl#5G}{BP(fdt@Nwe-Dy&YLfr!N#iKN(M02oN&e5J?1k{g zJyBd`WHWDN&auZ zRklI8;FG7t&8Bgy|g z$p6zkdn>kI<^M_O{8R_|cgD?V>|L+JuJkBY#kZ2ar%*2c4I!`jL;e7o+Wsb{ZtV#bg^U^;<37dJllv(QU zXRiHU_A3A1XqW$Quy>>K|03}H3i*F4(t0y;`%g*!zu7MT?}Z2dmgN5jl=9F2E&u;p z%fHqK|DwNHI(t=3FkV=U%)!6h%Hvh#V9zqj&+S86v3y!h>OB9j6NL|d;9#%UoGJz5 zmEhNAl*4a7v~tispr>Q>JXftaLTx`rC@eQ@U-o<}hp>KW zq0t{b=pXBC>r-4gXxGr*p#Nmpuk01tNAyYMpp@G}urzsRPI1=0Q#oik&=wH<*PmSf zNcpe-aODvE*SA}^ZQE)U(aK>zuG%21^50#c<-hij=(|?RLCaG36UWX#`g_WMeR``Y zKltx{pIRRDY0dd>%erz1{*Ny5U+-CM6t1gW9si}5yWEUVDYe|hPN4eBR>yx=-VXk| zlc+wj_9e#iv>N`^6Epa)|E&CX7Qg(T)Jw0aL>Kw*tb11>(1%XHOugHjP2Y2?s+2yi zg8%lHCqM!DuYF-==V;yBPfPr_=c*TBBk6`fLHTc+uySam7q2JZJlf*=UpI3X^?w%a z+sdH@O4ZXQn+mLZiedXi~K){_SkgVX`ARPR2!B;|M~PVhLh8}WcAp< z)oE2E-vyTz(ZAVP#{W$`vkzH~mxuh<>*+%JhQa^S;ej48=T^=CwTb_yfwikoPAF_Z z{!WA%t}Rz7Y)4A3DDr;|b><*m7>AMk-L$;7R7%YI3{87Bva$^d$p3SIyDpup4&=?+HWl5{}u56+A7M|+v^g>`OjgLUeBv(^oU&7?PS{h)${-LwB+a0p1%y=o;P!~ z4;sF$PyBz7{!`TdEAS)f3;%B|^8b0fq4rb%<^SdI|C97BDu=tM{g1Ts|I4I#1AU!W zRn7nBSY_=B`eW9A*9|yGujmJO1$~~q8$VvTcwqj$BLAPq1LTRs|C>3#ME!Sdv`XP; zQ0rFs|6}|$z5wO#X5}&U{}uEO|C|4nsF(LSO7Su-qd$>9i#wl3Po?8~-{w6P+sj?k zo6awJe%Qv0+kFN6c&NduJ4AZ&G zN@x7Xk|M|7w&iH>arRJNg5zqIEdGuYIkT!f|5{Rvqa`tvchida4{uLRMyZupj=!^E z^4#5{!M@D&BL1$O-bg;B_pTuC4kG3F=d0bDySp0){tLl>Jn5a~QcB;5N&{Qyjh3lFV8>6Uwia4zRRxRzOp^F5RTyJ z8UM}TyOM88@PAK&wjBS{iuiAZ3mb`bGPF3gEdRiNE#LQrz_yEaN=N*+k>lYa{#$sz z7fWJ!4IGQ-=Rm$ICnJ41{zp6DzZ+ZGG0M#GKZ=Dpr;hT!7rI;pjV=WL!`PvZU^gwj z5Bx7C$ICdB|3hWD7qIMJ$~W@PD-M32cmS=)j+C_^TeqBU!)ekK_H>8UMF}|LZ&8|1NCL<@^u)|G0?%3)mB1 zEGz&2Z~Svgd5-J+2@k3Yc}lHJkw<9J>hg)NiZ-dROXa_QYpMxhpD|{X9(FaaJAcQz z&&}R_K&_VcO8x71D!zE#rz$-SyM|-qVh~t9w`Q?qTve^3t^DI<;nJQbD^s)&XhhGol$M-dS)heeC z`dgmgK}*&)pwE-IR8FsNl=cOo_1mP4FsR_STHf{^{BD^*kcmDWDzEOI=*jIEWxfU`lb^cZgwpsMjvP{2pa!@;yGvaH3tx~YP zGKkt@_%EI|EsxPPP=kJrQ|@n96OBb zzn`7BzLF>M{|wIaIVy$V|1Pi?N(*pX;{OHUa$e&9`IVAGr4s)yhyS~2CkFq|q0QN| zUr3(ua=bA*^Z#60eAV;+hQ$B%v<%0SZeQa6F6zJhKZRm?*Z(>HUkm?V%gFzwU?BhZ zf!WPDkiDFT<1uhCR+=k|{67~imh|9=f;{{asxh5uvt|Iw__c4v_ne+*S}(O?6j zwyS%g(!->Cl;hi^{SN0p;QSuqPviVJX+O!e=SMhOUH^&e3pfrI%i>YjknuA06h=>( zK67^0_hnDMO4N5z?z=gEgYzGAyoc*Q;dmd{FLAt|>p$c80N3B-{O25xas4>w4|9H* z;~b9bfeWK+n~LER96#pzqT)Nxw-xWjMLdi@i9E#BdvO|9jK7;R2H=#}Yq=(#d9j&E z#HEb3%XnskZ8$NQ>n6cx=PnbAqa?8|dGg@aAf%`0p z-wr-sjq_^aD!cGqnKe$^b`H~+RzApA%PI1iSXG8B5e9mIKYe+zmPWNTwHe2NK}~~) zG!M0j-XXMog0kL1nJ;jBj_WUQej|rC{61%4yN~D30^3J8z}I)_`D(7$^A6f18c3&i z@J<<*Zqn>V&er#Da@@c*aoYB9-N%r)4Qk>?06DPBYWp`d_CAW+_NTz`d5*sz=?k2f zar_YnGOkIg?L*aF_YSVW08MReU0pw5DvR9qF<|~Q$M1pny&Onsq9L?Pbb~h1s>Abb zWf^#hSQ8NCtV@Tm?M2>yn>;?n`HO)|!s)GCi(7YRo9pGFrlzj0fB*XW+OGK*{t(!n z2Uhv|X0CId7kMh&g$9nC$JY|)x?+6fpu1pwg@v^VF^wj@g_kJzTO9DM@VO#B4|Q|S z`6<4>FWz^}n!;1*{RsX0*HkM1IpW{V0gg%5k>gZ1iuYx*42P(6b)8By{%3fmtO=Kg zGMHbNcu`YV)4#s1bNVMK_bJMMhV!$WU(b0z>EFQh9b8|`^}lmmMH&Ca@vmGz!TBl9 zPjg<+c?0K-oTbfO9Id2%Gv}qn^gf%jwcCJ0R@9?aO_ua)$ zWfb#kzb?CPf7U~JuLiy4I4Rn?D#3YCusXQ@Bf~>hmqi4IRA!w zb?A8D_&2WqC)c*YTR6~fNiU)^QrnpJNZWJ{zk&DiZYI|QxE{=*zD3^BcZjxJx>rAe z3$8E)TslIZeuOyU`xTCRc=k2U>X6rQe4YE3I9o^mg5$f~KgIca&a@|OXB9rjS$+FO z&em~`)aLvl=Z|sxh-c)5D}ABuZ#e&d7Qoq1Jhh+mCqA!h7-*w(_=qvZX8H6PDNXs$ zn}OT!z#nkFpYsEp#arCo%^_YNp#r?%twc=mk`<>6Tl+JVw3wbkzDEUio@&eG~~j^9-% zqUl$$Uw?GKpr%pdy36}<9^MBGZ{z$94&@h|61>~E{t(ydW^m8>m+|b)&-x&x`ZHK?W z@jM5(r#86qxsU5_ar`OQ-{dSkDu;}(V6P$RjC+alD0x1@Ij7kM?$H|z$H$Pn&($;P zhu3hvgmbSU69P-0*q&p$Xwg*a!zb?0%#JkSFd|NN$n|%(t zX?@`oq>zO*`Q6QN4zjt0V>fllMHSC!y8w(gc9Hg!rA^z^y6(la)E!ot;v7_eAU$|(=(q+q6tX#Ev%?az)pR}=9q6qO{TRV7A zR@<+(eqeJ`{eb4W5hI2UYZy3U;OJ2!hc}KIIcnO>)>*UX%=IhQF-SPn<)Eytu93n` z-_Xzm0E35(96PaPYL_Mxay@8JbMwfNqehLk_1iydY_x4Ybm*{QBSuV^%y({3v(`{G zUIXE`H#82QT|aQZz(Irfx({w@8Zu{v5P;5OFu>tEN@)Pk9H_QEKm=iih<(rd}(&rd^bWB;tKfr`?veo#Mt z8vEJ5sBawD)Neq)L5)oV>k-9)gNKb8Yr}EM)R}YU&YQnr(c&dbJC~Dk2fdnxtUl{M zpkIBz#{L5u1`ZrJsD5C5lRcKE0bntD%((H>RT%;T4eIOb2N0==)@hdEI95}r9 z@`HyC9A9|p;nR;DxoqL#W2bIDebe5!+q?1PC40}Gv48KL8OQgYboRMR7F@!LDc*T8d%s-m8}^UvY3w%h4jL6tlLavDf#M(LoBH6-)EfV;^@#8I5 z96NH|(UuzyUVCNBl9o-U9WRz!21h(j*9GmWQKz0hPovJLcFSK_1uh(Y-~&cPuaGMvv((KXR-^Cbt}1w`lFb6K3pR zdvNaD#Jhw~dl7STfc9Q3v-Tdp?$YCX4;($XY8G#zlzHXYQ((*7mV+0~hBED$c#-m% zJGblO$RxdaZDXN(4lOO?P@Ze|8RkHx{JPI3vSOp5Et_>*;+?yPn?X)a&VePQRYsw^Oit`YfqH zzajXcUyV8*P;`o)9x_rEcA&}pITd$HjaPg-Z2@+bzaZ$WVdKlETXpvsZZBTj8+c&bM|LH&h?ig zRU1Vn8$5l`WbcT_`7iwu`egLb=)>(!y|haTmnEBN9;4SYrKg@*+YI`)v@a>GKYc1; z$pbK@e)n$PYNyafaT~{5Iqa9yS5M=kKjw^`qtC(mVrw1YO8sl?65@It_jhq<+b9cd z)<^om$>yM4BK5?|B6PfDS*5mhsn@oNzU@}}aoeHQsU0Jg-PwDaT$nR2S*DTN@yc9q7AaSn+<7+srD@;ytRHP$_ zTPRHFCjRL>A5+-R?}h@Rj-RFR=M`q~yFD3P))a*2^7M8NGno0K~J(IXF+knU%)Zi`{aaNzyOnSvh?kLoSpDXJb|qEYa0=ook}3 z#40Dw#dID><=|>Cu4C)$NFjHnTUXq44uo=0ImFBd=Md;~?@Uc+ekk?ARw>A_j{KJ& z@vNHkV(tu2Q(0rY_eow4E0ynjR`GTYi?z#HFwVzuKZnjd=`Jr8ObF3Wic)dbgy?* zBE9=))q$<+p}OCktBLlF|500{z5J8%Qd1t*S5ba0`SRbHD8YYI=JUUL&!iE$DeLlI zdIkT7K)q`D@BWU`KZ6FYd?zp6DR2}|Du>|zc&OGf)D)(5e9*(4{CD5FnMM9P`=O56 z8`biE0Sy!DzdOm*6k52R59E^*O&0f1X8Gg!%)h9kVdHwBV+wQed0znqW|OPC%vBCj zORXW@-I30!xxZmU#`QU{?yN9OQos{Bl1%YbI7sp1!yRQo8PDd8nTMD--|sup-3?%wRdAunB&gm1g0rEzhur>r0ul z+XxSLCjOsU#{V^i>iO^5jz<~Bx&r{0r?ql z^8(;Lk+SzO$X^}*w~@9Z|F=<0wfw(;+1G8*eh-85IsY$&|93)@>iPc&ZMC~8Gw1)E z)W!Gfeo!$yn(F@#a0mD~t;8!><3#?ykNV$N{yXzO=l`0-|JI77OQ)TMT}A%yN&I*H zTi0=}mj7=|{67G;IrE_-~86QW#s<3g*^7S3M2-Z)8PT z>tD6>f10^NcfyIF|Jzyr_Bd`k)zSZ(g*jOZvu;ZC|8ZeacATA{s-yo{j0g|0!`9n@ z|NE?!^AI~-eF6C2&h=xJkmvmu3QbwS|Ah|lugdj*XQN$;=1&{ zbNW)AJ;y13Q_A0RUP;LNN~X8<<-JGVpNc2ZR*!daZCR1l_HVS>^OQmuc?5p(o6{lk z&eP{`=VzZ+7i{(CkVbidLG%Tj!(8eGxnie(5#Kk_bBi48vD@RwVUF^R6+MgSk6VW6 zqLe&$QwEKygSr&Uyv)IAOksjNlF zb1_yPv-qltll=`>Yj9^5bF~j4MP1?16)EJ6bdKF?f}*i=x>S$Wd+;ncP#=xRo> zqLSFezA>?~g50rxF2yZRj>KxH)%N+z(UN|&NexD9X z5ZKohDsdKHS5b1ECRad+Rh>MWUYz`M#U^|Fu703QNxNA6p&YhquBEbTno8e(oL$}2 zvR%{2Raaf*(|0~GR$Xf0*}oPed+)Xr#mt_#wZe5t#lv+QU8Peyg!1mr0#d1gr&`CX z?@Fx{Q3~w;`@HW#sg!<^r*u@;g+2*=6SAqqh8FZ`#EDqG$--ICQWWXZlT@6Jjtr-Tfag7NNW4Y3Xma2%W>{-jTxrH4~h@)2;`d_P< zHAcx--ldDHT}TH@S5l*NZu=0FS?g6;-eUDMZE?!2G9ETKYn!Wz7+X0OhJaXT#Zmf6 ziC7gkuB;_uo$Dhd-+E=e4x5!VMVz$#n5*&o9y;rPZBW)LwPQ0!XvtE(QOjKKBSQIm zEr%foC0PjBkRM8W=zsBu5c)qX?Rm`Nt13>~&9wHoUWscOyW?@JL*l;au9vG-PaB2n z2fLS$CC7SdL$G#*om2Zy=zn9?lVj-r;iMbLU9SIKEk!*xobt5rHF2-?EcAbG`zZB< zO6)Qq=>a{cf6Yq|a(&2?Q`BSS1|xXSf^Gtihz15{84yHfPXgqdg4ySoxD zjJzAcy`vRl!EGqd`_tnZ!F6B5Sm+jOBfGeCbT|8ROMmTiyO zVYQO}A5TnI!I?nM!!_qd@#juTHCQ9X z+i$3~(K=|(UaMV{9^c1TNWB3!EfldVK^-K&LKj;blz;P& zytwF7Fi&OJv)at>tP&8qPAy|wKp51O!t7|48b=PPK|`Cy8+E%HRxRoG+dbht3$eOQ zIHT=ht0l(8V&AyX0o9E-2yq@<|0vc|kCuYmlqO1%D=@iBoIG}4BI{SK|E>4#x)l~% zYitveZv7kzmQq1|qm)Gbbe}crxOk{5v^QFRe_Q?Un#37$p6mZH6X%rQ?)LkO$fb*5f>c{vX9{N&k;5zU&8t?hH2$h$m9U zF#fdI8r1*Nrmvw~|F=TfxzHf=e+%bn*c7KxLVtd9{XYeM%_5e2sj2^`Q1Te!_Dfux z#jnyd35do3<22s8g0_~Gv7}S~PviM?sBd|p|K)B2&#N2rE634wwcTUSJ;yuh|5l!r z>;IX+-9ovGk%dY8&S%tj5E?J^|2VFid224Y{&&^!k=XY8F}mPBNUrlV0o(p;=rMx( z5yV~!UUPZg0=5g16qZ9*`8xFfT+%PYb}apelfS!xWvpeh99RcZcIba&ssCNgb2Z}( zv8~WeAmMvJlsUJ zW=q8HuOlVO{19TAw>rXDeGQ@i)j#eG5&GY9+|N+m=l+L&fz`9afy6afL;sHk6W5+o zoAl?sZ$kgO*Fs1AZ(UVS38$@${@lC&f|@~1rFJsBQvL5}liz>$cWmTJ{XdzzsmSY8 zxU2r31cXYvtGl_E<4ocVr*67t8Iw17>$ApGTgQ>w{VCP|W01N!-dShW1mnq3Te13o z3U8DlM=$DAz6p&!{46K;40)eQ*;C0Q*Z(WPM*Tk%cniqy3QCyGvtdZ`Y!3DRd{T_0 zc9iu0Jl-rv=GFg;Ngw)uF;Gh3>0no`|6Q9`Dn$E#WlGTp(2G&0GwM|6FxKG8Wd*c> zJY5E)^NTTcXi{TuO7|y1(+HjQ|8$_84$RYw?{lp_8*E!C?L;sv>3>Uis!%I5(vhog zA@u*c^vyg2890YE%T9oD3k#=mR{!t9{i;8|C&DM&|Dpd~eLwX7PNaG>an=7z&?TGT z;t*D)T@Eix`hPhPtN-Qet|Utfu+=wlZ~I~^+->0bZ=?S&gy-e${|mSa{l5mP?|{?l z|8wDTuK)KHHXvQ6z&l5*)&J)LVd($$JaZql?S+fMY$lVa)c^a5brFB+|MNL6L~?hd zP4_c$G=_E0tlxbLV;OOA#laTFu$EBT6;NR|PJrtF<4OOY+(G~Ef{urw*mY3u9AMZC zcj_4h>CY4O|LKM6yV3u9d9w-qzYFQPl+m#(aKAf5s*~W`e*S(N{jW|DZ+j5#iBiLF zwExxruGsC`(C$yGrORGsGZ=^d_pO@UU03aexUZ`o6ea!d_s-ssu_p1xQDwh&(VkGt zsWU7;^6DG)bxRz>-)PRc{&yAZ79?gihx)&T(q|`KCk8W!8~WefF{e=P+!tjMF`D3$ zd(+f{!7$(okCJHr&*h2w-(H(*EKZ^ZHxu7Bl4HH0|HtsAuOZt1x&A*98B+f*q_mUC zbqDgX19+C8ktQKcn}L2a&qq+pPb1E7Mh_PvL7P%rqnT$*lK$Ta{MP7|z`X$qxQFU+ zG{RW4+9q;z?~xj`%@p3K-A2-yP!HQ4>|0n)oy%A|JM{m0wD9u6B}~0Pz)Fbf|NV?-et`39;L9$?6xILlfKOKf z^G&R-*v8mw=>K!!K(7CfAU*2;z2x|Q#)FR{GkN=eIr`}u(yc&~J_f(1L!UD!Zv{G3 z{lAaD$2j^LO6~tj`u`r_zbongTj2ZyNY7W1DfRy&;CCC7lbZ{l1OBUk`?XA#?avtO zstp5K}QU8AdX}^%&MV?Fg|I^_1%Jlzp)YnI-V?W1tK>hy}ya#@U z9NbjY|DUC1y$))=K7A#=0)$iV{u1*4X(sEx4$stElK%e?IH~`iW)%1dpnhv= z|36;%4t3yD>|^;A{2VUDBQ^B@x2Pu{1E>A?KG^<$Eql`RJ#^Lo>(L83nA;{P>HnoX zn@25NjILPAn|{=1-|90o5m}o94DQ;iZkmTych9CFseh&ZHhOV3h1nX1#A=m%s;T5wCy?;8TpT~JOrIqymGPp99XBQ>?e;UxP zL+(!{#ZvUnM(WGP4>q_n>FbNA~t6{lBAK|8GO{^)(Cywn0f-jz>$D z^#5f@z~zMpfhF|+oy55v{*LBQPv6CQpB?r8?bN=9slnHwLpRa_xw}mN-%Q=Oj3qb@ zw(EcW9YX)V7LY^#Uyda8HRSsL_t7s?k=xJVKeLD5AE0|||NlwS|KDJZ(r2i%1F5Hr zS)p_>Q#YPOFRA~(13rFrA4i)1oV{6>vpmJK(ENQJ^#2{u`fd0{?54IHjx>OW-r|Aq9_pN|3Yy~&T9_EMJX z|9|04uK(Y~^?!hEx&D9Dq=YPUhlr7x?f)m?-uubBkVzz z&H^s#|GimB|NjaqeY2?l{|o<`(Eqcu0eIYO$i7MK{3DijQ2+mi9cw?1%=``d^Iwqb z(b=9%{r^R3=AWe&#qz?8>>4~4N6KH_hw4h!>e)P_YSP!$8 z%O93~zivVkyeG-eBft`Q^%eg7`}G5~M##^m?5725=W|S?>ncA#0miS<8+%(}SGGD+ ze%55l&))&p>#|d+$@f9U8hpYIW?zREv$HAL`B_PRR%Le;hGl-g3fW}%u_|lKMzSCF z?5rhwoHu=i-vp5;Muy@puH#+ldFkF~`EyImbLd*Sv9to@f8l3f{F-$5YkJRloOqkR z$={nx*PzAEn2uuP*V-W>#~7IkABHF~a*Lew6fkWqhfj>xIn<>G@y2+@ax|(xSB{H? zg+nV`_!^`r>3Kk;kA!dqZrbWP2J>+gF)#>B9Kkb~CJ$bjI;axw<4GPPpv&*_bMBv^ zM~ZusY4Z&$kG4)n&GfGb2=kFW$KJ%p(tP76pVnnZwz>xM(GSP@3i&?2dg$mepeL3& zIL>c5T8v{9J-o~UQ}<0VrPia)!7)4k92fR4#y8DFe+S3E!lJEBz;`hNNQ<;_%}+mo z!N8%_x2bdXJeQ*(1wn0prM#RCo(5%u8}c*vd+~Wmg7SPi77;n+{Fjz_oe@}d^A*li{NWWt6VUxWdzS7r+oBQ%K4-_`H%51#}6DomH+yN z$Zc~fmw$aljOCxt^(h$05%Mn#jw^Hy`p9dOa(1CI;@Qy&pDMGS4N93KsR2*Op?occ zu6g@T$?!61 zOcnBPsk!`X%Xfry7|<9e%FtpnHoei-)t&qsUkjaMAf~FJ9np^z%D?t5$Nr>}JMa0# zy5w$sF^+8R(kVtgy80JLVRMQRf3XwdT>fJmJ(qv!l*@l`*%~X)B8Hv@or5{4Il@26 zx~Rm5*OX};eYft11~gY|YRJFZ!W1F@T4cNC?@l{PkC1sSG>(wVS7l3mqa2E-V_YsG z>z(5?!eLs+&3w|G{5zU$E^^;}ew>Xuj=%mqcl5rQv~t+8$D~*z$yNE+=VdI1I~fg2 zW#|LbIfPV%{7;}=ru50Qlyc&Z%!b__&W=%l>fERQCo07j%CDN1dVFwWljag1z@73 zV_JIBFI^AAKG2U|oHoW>{-+baa|roYrzw-lf)Fc{N?ypnTFh}?M@f}NeNgm5QZ5G* zFPDEU?VW?OG9CX@I@NGW=n$?)5?2`t`FB@%wUHJ9J%{v*3U32bC}EDl>i5+-w89&A z&Qdm8iEG<_Jo!2T%=bf|eYKb|6_!Ee!{5zuBIXHr?$3z2t{xKZ( zs8{gUpXbA|3N^#E7XGxQFH5nM|H9pfwi3+Y*A^t7}#PXtco|0L4v;pt}jnp=^t zP26n~HeGK*r<$pWRx|jcD^m;EKm%RNmm+`98i}HUqbk4AjO~SHuA~fCy z6e0hciIdC!X-WRiA=X|>?;Q5iH(1Y~Gvszc=aV>&67vvnhWww2#q2Jpg6|>!ONl!PX_}kl|AfTp*-8Fqcg&o- z-N^YW_|`yg)1A9lk;`HJ`eVmc{(5pV^{vKD`IdGP=6Tf<-3#o--jh#`}f71uZ7ym|67o>-B>Pi`MJQT2zY4qFd)W8sJ4nq($oG3d{zl3?3EbX+eePB;_#-TrFLxvVYP5QI zd;*fb8cA6NkEa9w0OGDr^1qn67xJ&i(rRQ$`CkuBYoVlbEtUTk{^ln6N~~%BQT{h0 z|BKNQ%KvVpVh9o%`u{{EV>QptrCfK~4f)>+1WT}ljijtSygw(&|60oJUj8q^Znc3C zid|rO4|e1G3U?Ic|3)Y=AKS|7k-}NnsSX3zadLe#SGQqZRR7-%e0PFzBQktbJKXuj zZYaD8&M5z%OY;8#(klPoB-e+M{C|~E57T}hD87rebv>ni8JonC!sm~oLW!R!%FiV| z$WO*%SsM!Tvt5NL*#hi-_pt!i$D!)eg)!N}O!=9XK85_ugPyHf z$j?|f)G<8UPM`a+R30t-U(n+NSi80}f*^hFZ>P_9q0g_V-`1~pVMAVsd`X`N;qHBf zzebPzfs5963ac}00Kg)BUSuxkvxPmt{0K{#{|OrSVI;)*H6}YZYsj``zXbXz+2vT= z{<&~g_U*zM*)iVVkkz4E)yq-XgyiyX&r$B%r`KW`@*kG0N@dj3x`=*h*g2JdZ5JVd+O3QcwlOiX zM;WtyLar+1uVpN(qS{5A7o^vf@~@w-YYV9_oS~G{+uc>graJi_LK{ko4kgW4+Uf3) zEGKOL)be%I3)fJR|1m%?mNM-NRt`gHe}(+JXLCP#5yR-=mE_-C^o(pKPvw6U@0}@> z_gN~H5SCe~E>)sd%4KcK+O!PbD^tpWR56x%ubN<8j6KZdo3v44V|J|e^pJloWm+SZ zFr}+{`5y$G2Y_?Pzm^BBxXyghR-siUbVJDhaLRUunSJT%%BdKHf_ki zc8Q6!eVRG6Cw7$orO;HXR^>31*17WEN*d|Mq+;htO_% zGK#g%KswZbuFsl z^cO?^X9IyA&P$Q71+;7j^R_zqDarqQARLxj@LFpoB$;&ni~4^$oDTWl3>>SI{BP)y zCgm?`=^5qnzZ2-z(4SsJ`V~d_Uy1x~rUl)KoEGqi2>CyieqD9&=kmXWKJHFnyEMuF zGJ17`$u*b%(~!<+|18H+wUypvwer7{KElR!`QMx5|2%T2qvx<6svM?gzcK}2EgGHxIP7L zuj5>j|5LFC={2>qlu0jFL$OdO|K~%|<@Eg5Q_hvpeheHQ4hNL~UG%JG5>NTR1YECx zKXc)JH9`3|<~V3kF8}-KEw)0N*ChErM49K)cP}8T%Kv4QxuKfuf$nMYP_JKse9oqK z{X~-gd$5=cp@+H>33_)Y`M&^MPs1~)n($Wad+Prui}L?|QKie+GSTCeQC9|3AexwwKaBNY7XKzo*ag zKb2hkD$YaZ=Rl7Zq`kFW{#&@0>*@!6>RkCfLc4NAwThQ`9GIhe+r&Jw{;``w1%^W`B+TzXw0ZA$S%2 ztSJ9_Fh2w3pMlc@v+CvlLMYh+H%s!fuP8sKVS$^>yB2IcAwO4v$thr>{2Zu~{sV}) z6KIv6`=E~Ub2B`73M=|B?3_m^`8?|2rEp;hcBPfr^WNV_`S}U(|AhK`I%^Ei&8B8A z!P^gY(4WfB`>>FH6poyV&2bs_!|L?s_krxa*s7$@+f)78hc0-G`t>J?KJP8k=P@w+ zMHzj5LRr;>oIbyXK4)alV}GkDoRAI6q|Y}CJF_GBy`P8Q-_-1N*^3$z);T^>8^20pXzr1eP)fL9U1wqP$T>;qw=iggGghB?_5 z4BM5lv~h&R$R3WpVGrLpnrdwA`O$uKq~00)`3eNKLhO;*k~0Wd%ulfmAZ7t;e$MeX zck}YOrN?#N9}N8ML5g4C8RWIkm)m-@QrM>q8x5Hd!cW1zpY|MK3hRh|P6kut`0Iya z?&bJ9W8HN!#NSb2adouWzL`Nd9dCB7pfgZy)rr47b%T9>=k&WmNsJGRqwW5ozD{w2 zYnE$IMEjW5Mtf>G{#xnm7igo>#-{Zm=&LV`Rw?ncm#U>e`1972v%_3tR{Y2C#?_u3 z=Plvyh@q`ASB(|_@V~IdV6dG%hg6eEZL51S?TMLuPjdYAY*@sT9Di$VNBrlbiB|H> z2>d4%T8J^9V_iH z(_2T|mvQIFs`yVMcU$^;SWHPV<^!8^;tFWZO%=YaodXvZDx z`0qxm?dQ8I{wKkUE68az6xi0zfAK%wj{o_Te**ZQz#Jk&34d2O83km6`Fgn0iEXOj ze+mDE;6D$17IeUW8IUjG?=*DWZ20edOxtz_@m~x6XM_Lg;J-EDeeWsJJ-ISzSPzJNSPF zWxjzg*An1=7}&-CRp5UE?FhpMI^q9^;C~xEmUb?;-!U@m2p{jL~h(_GYcw2l+PbA@1i=dc6t`QR+tg2d+r)p9Upv2IHK6!hbpU z4Ny+_KMij8F!Fair5FC`neb1|PQ+LFYm870%;qu!femU2FOvVS$o~uE|1;V>6X5b| z@RiQ<|01=oJpW&({7=jB{PXWbd|y(QaH0GzfzjhnXyiN>^@C~iP`b*WbUw#dMSZ5d z$@Ctfpg~06I#Me}jzCQ?Nf7n$};nuAYAS zcc_WuO;2fkZdqD(^tMuaJDTAtV0!mfhri_+TOY8{<1xCSuWn@AdhlPWEAzn%TPgSt^agr*m-FAYQ4@K^ z%5_>HwR%?Ozipb}zw02`HgPm!C^U5CrO>gx0nw0JJ6g;2J|0I}{iSRPS^q2BfSjLV zEa&YHB(>J<;Qwf}a^>{W-qwlpL6<kmchGpIHMJ~#t9=l>M?0+qsI%8~!e6aN>`&N>gYut|Q;z9iWF2fq~1ayA~ZP-Kb|JLMp)jJ3|{~y7_MxV4rv^%5ze*peJ*?VH% zeg#WO@c&QX|6e8kzr;M@;Qxyi)2~F!j7sg&`HBC_+WBt_x-$RIroDMmk^k%A|Aq8! z)}{LIEcrbZ%fB`8|4e2_TK{i>|M%1SeHB*LJFDXV!|?wG%Do1Uq!Rz1!#;R5mfOFq zSpMnsRqn+i^r15TKTD6{{>1-3tC)Uf7X06l&B)66KOw_2E!&+{%3vkEf}sD^$!qc2 zGWwr^TvZBZV~Gp;-wGDD7wLZlsjiOxQ?eJJ+i&pNlm3&kpM&{=Y+xq+e~C4A+ zMCq;shpn2(!7qI09)@2)pXtA24q*iWkX{3oG#`*rz3PvLt|$9LCRM>Rk> zrBm@MxYvJs9A94X_r5%wiPj#)S8NgZI~KaR{3X|$i}>&3Yk2^BQ)m9K;~PE_og)7D z%XY!P8R%U7PyX9K3M*Wx5Le`}CEr?T;cs}C_pUj)gf@n=M#O(dDQUWz!f0L{FkDCu zYrsFOV5Lant3Bt^g#X!H@P8uVe^(LzH+I4Q3GjbC<0d)&*OszQS0AVBHy3`0mFKN| z+aKtH|Dq!PGvUH~_|z5uGiWsi{-^Ur>5Si%fB7!X^;Fq zzl!Ij*zr8#=I`<}r5y9r@g~o^^Eq-cZYh-V@XD`VoQ)A*z*1@ILf`vadK&j7J?S^a zKV#&v<2w^^N>G)qa>#trG5DU7^U%D^CyppLzK?!0BmWYF;$qv~FHKG*ZC+X* zBM5_I6dvLI7kC-R@2?(?J~2jasTBH-K^vCVD1+(zrulU-jZd|DiI>lO8fE1D_GqV= z)>6d5*h1*nA#(5wr?pM|<1lqdLFwxkkadO6xcX6=gSH?&d!=XOsdY}=qSTO8$Nu~} zOS|yuG=;4OaSBf7mOsDb;-!_!Z=LyTF$zitul?rdob3vqBX~h&eQo81wnbCuOJ`2{ zvc^|5JO@o-JbmEAEM=fBAs0}$Z<{Hu(_!1$N=D8Ha zM=3H7B`<1Vj4S7o>$tbpQ*D<~mNILwH6QlW&=cks_EzgpP`h0J`7}5i9F2UGj-Kde z8`9p0JW;bKPmYIrZJicsM_V1|4=UKgwidc_wRJeg{G;C^eYM9Zht~Y2A~fzT;i!Z; z1P{c*wY05Kz3D&Oc)jaC{r9cI{>9iy?5(SwDA#|^r!DC}*S&WA*6{2v*MEa3QOb*D zu7`5Y1{HbT9;}_Y{*xZo)FGr(U$}NbuK%L8N{5)CET{Cqb^dzjKUd+7Iqyn~HCP(@ z%+U#Bj^xf&!JUf|ie4*lm&zM=nOj)1d<4SH0E{_|dV1D~d% zJ;)jV9ra)IqJ&S~?Xuo=MAJB2mf5BT&k7ypKCsh18cpL$Me=5 zLtI5+2v3!KcV`{LedxbYJXine9q*g)brti$n7)n+C^$ot8qhAR1j#BKHjcp8j!Pa+e6rpeYw#U~m@`^gEUNDcI>6ecp z*jFs+zt9=sbG;&lTRs?aTf*Q#0n*6XF;Z^diSwiIA z7uFB`aeAsB<9Vb0(+l2O7W&Vb7W&G^IxuPk_YKi6-kCL84|4sdWI6Jo=g(l`3`at( zUok7h{fgbgLl~7;bCBAuEIu5GbcYV%l>&zNO_#+V=Nu?Gdgbfg674^0XkALH9&r3f z?dMF2iTvjJZ#*Rh=3(R3zAyL0qNDzE+)HVTRV;G-=L-4Ck*RxvZxVfUC1()Jv z&fwZL$Y+A*WZ-g)!7;TAYlEwx%%ZGG#0~xD$|TOM(DL9;8skW7xsFP>Ho*-3CMFBB zUMr3XO->Twdiqlmf6cuo_|#^u;$wSh24z~?M-tyq(tnH7y_Oe)^9!VsyJCd?(+}P8 zxFwtmj4w>%w?Fx+7p1@~9}~M=|4qg(D%XEA)BEmzhR_eTjkgesM6UnlCy%Px;OWla z4ZOkMqtJp)q(9aR{dMg7ui{Cr|E3emT-1MZA@tvDa-9KmQ^0u^QZk(st^(t_*Ymln zCodsp^}-(M=Nv~RT$!~l#y8Pv8Bm>q9d+=rtE#GH0x~GM9cu)A(5lIiI(# z?;)(slrR}9&{XQmOdy=gQ}^bckHo3}^rIU<4!QoDMJeM*Z4U0r;*K)IkwRAwDv*ow zGYnnf+eBV-h`)lg>c4r=UQIU#iCzb0<@#?8n)oo$zn`p?u^s*$tFMg2FuNBAb;f3*Z$-Eqg7=N=C;xYmchr2m!@OZ|5m7Ol{K zJ4m&ToHJ5P!t3r7Vze@2!Tp-mf6K{1{dWe>W-!7y3rN&|yLfgAlykqH-&X&fN?y?p zsHFeSAfDsVx&Awc`;z`U3u~#tmG%pT4Zvp&Ea|_Ez}i!A)sijH>{X1`<@)bn(tiiY z!F?whcrzC|T*wIP#-je)hm~{{Pckf+w*U4KYYVp4QIzc}KkC1;urDuUG+q6t59T?< zYQY|;{yR?keefdm-(hUgJ;|S6ZD+5A{&U`}-nt`zZ34##V0NyO`_gDncEu-aP3)wj zj15ll^qp1z$x-Ws9;oU+TMOzxt?{uxS1mF1q8LKD@jUm-6YU2n*tLEPC!RXNb0hL$ zi^8wb6b@JYQp2eKoG+*Tb2lepwAMMVtz7^41r|FoQ2)7aQn~)qT0foi!CUoTEAM;P zf7_{r?w;a0RQ1&QT>mYmq*)0%_1`*jS`I%#|II-gC{1qcCH6(gllt#UQk(=NBYCnFiF1FGokjh3IWoBwzVAfVCNh?JHaVP4?yewp zC6aoC{C1P$`4#lvG4e0zzg5e?1gn$&b3cI* zNK!pdO8ReYs@3j=;OJBXlC7Q`MO<4Ju0=P$UH?rf>c1&aT%VuiaB~_lo6yVdHM17l ztN(l+nlFCKDe0~)O;E|R{`c-Nr2eyB&4X%Zk@p5*RR5g>eZ2)@p-}==4 zTLGP1?M(f*Jn6r4lm7FY(@eg@fNc;Z*>>3lO+x>zA*Uu%^#tE`WHt2P9h9_)8Zn-) zk*$RTNXZPYbNzRFC;fLicsM`uR`lOnkd3?XX1a)4a4Mb|b@<0zg`f9w>c}?63+Exp zXMm&azy0VK_1~MRRqrXZ0N=H}=)WHl?d{%F#F&m{eK1NB7x_Ykwc zl;hiz{(BKxKY%p6%si@RnfDd?@7v6fRR7%vj|Z?qmHJN&v5!)|z?xM%I3_1gsViAe z=!fn4@8KTl_bsHohINp>Or3a)G0{(x>ig)C=lK|_|GxMCu=gf#dRFDZ_j6AsnaMKA zWZ#p?I@$M~goG>*mH-L+A|a3vf+2(iR1|Rl5h{pSRFncDh@fQ=l`6Pv-LTfyrDCzUMwjo)r{{}KQ;FoyUsQ-S0MEw&yRR7J+e$Cvm z-=hD{!@vL3G_tu8n5JaUGGi>uUdzf(OThMKs9Vv0i&z8wI_S~6{(Cj`_X^@|LknMp z2EGKktVN2aG6%u>yBF!YHr3yYkS^B&y&TCr$`SSV5c+#J619;L)mE?^$oFI@@NYo| z_aJk&U-qEet-seIn=`<|IkQ(Gi?2bdtiRXxQh$$jQ-5zG&C|%t9pwKE9E$pTJKl8f zM0eeu>hHzO+k6myUrCMH2%m=Ib$25WK9cJ1+kop*yr)Ki`$NJ3^W>J4Xn(A*o(y#+T}TcMLf91Qs-X;%TH3r|1I(NznF9KtJ1#!>wmzTTKrv}okILknfm!RW&OMzWUkIy zSQ&04GivUlCc6&Z$(j7!ke!V88Mciq=WlDa5l_0|rL(ge8Ta3peFwUp1zqLuH{tIk zP;p82uZh14vJaEb&r8Fyld{8<+sc}A@^@d>6a64>IXDs&E$q0;pZ9*QOKIZQ^!a#M z@2M(pO&O`ecHECU?IJHF*vbi8zgNYA_Q)8K(~7G7*s-9XRa3G>CDG>1wr$88|`JqB-R8!Vf@riqlW~eT;ZHCT0#XikIhE>#W_* zQCPX)D0tAnIR2*9Ql@Px=GjUCEoa4oW7k^I9p#G=cKO%acy;G|<)EVk&Kyt%%tyOI zvEY1D$F{Y*Yx4^@isP@u+lJFFE+@pqamAMsec`|35Thv5QsuvWZFdnZ8e%lg zwRyC9x~i_L&=<#FOM$bC2lL(258M%-zVP1_fZVmQn*Y6x*LB8AyRIV<+8~4fS}i(z zJ$6o2xt~Hh=U_NKr%gp`Y0NjS#OdwIxi-#oas6ahTGv*iUFM|(@o?oSSNkp+oGUyJ z>P@EQ<5)*CSMD=hG>oF1r476veSw_+j)oKsi|FGIp>-4dpG__k>Br0}nw*xZ_8?b$ zp99@z!%cl+i`V}O|EDK=Q%37@5&gWPVG4aP`9BXRHogS@uc9y4gsn&Z+as0#TT=h7 zCdgXLlI~i#h_+bKa1lKa z`F{m{ikHU!Hu!%Ft?fOuScCt!|4#hB7yi>GEf|9Tx6|r=6uZ=IX?FWt`^f+O^y01m zIsf0^2mU`#U-vQif0Ulm4fL@;12;dxZ_%)nHopA7JJtV-=;3W(7I|_0f3D2`FVmBf z|IhT1|KBhDpv?d8!oB;jd8z-kyA=zoO8>q2Z%e(>bBX>-P%eKOF?^QyYw|RnJEy2T z%VS53N-il;AAU?}d(8a&%X=60lq#j=*Jd2CyvqHMed3*|^Jl)#bIVi5Idb)V?O=~5 z?|BKO_fdi^^6&|aaw1+}64%wxM_PM8rVh9Q+Q`!$QYCL=|9(RbtGHN>ZP<7gK6f$R z6u8B;9wT|&93T5qL5;tAPlZj$tSfGH>6arVd3>z7Y``)Wx0uy1C zzpk?@-Sq5{&i!~IB%xpQrjmv}Gln(-b1M#?epOOMDbm|1>Zm>k;;H9U$hI0xc!XGs zia6=f7+JV4qc~!iAxSGBrGv=u;r+wjE{|T`k0ikP*r+=4l z$)WHUQ~yQHlt!Wdv_mML+JRhEPR>XLy|t7<;};F#kE|DZNSuA+W^xTF4DWeYEz!eG zUr*IWD4FMQX-TU(lI<8n@EUHa8t6>H9F^HGah^Yu#m{p&wVRetm%)!SOXve19} z#f9}re{Jz}-l%)0=~?GKi0TBdq}@o)`sfu6`c^CBu6`H(vwCCe`>7YLG##DbQ0}Bo z=s)`(qj;ypjpVAL|Aa4Jp-x!bhf(ibp?2l-*fY>NS2XA|If}IEKP{o|XXaYOq5r%J z{pXH;T02G%EBt$%W2^2F4{LI@{xgq(Koh?3?osHP*RIRs)8hTB;p8Be<0(1z!n0PY z|J+l~LqB(=QO_MMNK)Lr45Q7Y&yRIwI5AAq1O#KTZ-wTImE*Nvx>NXgew}gPby zb4P>Ff9{p3_mcisx&9jiEHM{C8(}kkJK8Mu_HPDSWkYZ4(0}sMJ<#0qNsXyZvmxEP z&(lQy#7tXH(V*X9uK!#&&t1>7);W)OJoox`>shEjcIZEMXjA{W`h~hktuqFS#H#Fi zq=x>R1Q*=tPd`%OmHsi~L)k4FT&sU7Woh|z)oI65^%J-J@!Y!)ocd3H>d=4kw_5)> zSKXRft^b?>JsvEBTDkt4N(sgsM{Y&K0PH%`fFkst`*2O+Nei5CXUmHI8%M06JedwA zQ#A8x4H=h`V~^?>o5irk;R$xK09_8I-H#UR~$< zj?QhF2^6z{CiLHQo=hWl1MsN-W+&RIbH*l~6oYUcIEw3Ba?qRGJxkpYQvK(u`R*&} zP6}h8nldKs8cCrH>CJD-QKXWG&U0};%6f8gh0D2|bNx3NDD{_9|IH?cqCtpSDPbNm zr6-}QWR8InqbX-HugO~bm1~i&Oj0R$=|J(;)FwYhtk7~Nb z)Cp^pHBF!8Md@jA{Wl*Ab*}&B0G;iN(0_B06_4@oYzFe^Zf^CIH;TK^e|qc5>5Bf7 z3uDMJ_O*1id3`4r0ryyPQUA>#MPKw^3n>;+uAWPB$h9h$V96T>C1wEKEXs1#dH3;L zO1%mFr$1i{an*m*@K12{uO{LzmWuA3dS1r}|Y7A>I@?s{UIJPnxl} zE+XI6{4Rt)&L}7vmcz}BKyQM ztqPwsaP2z0%Sf&M(~I3_^NG0;`O|B9O&`W5=3xz=#)v|$|F(j;`p>nF)#0S9f zad_A)<2ToT?$g_!R0H6ZerK+$YTV^e>lh$79xT*Wh5kF95`O>sZw*jP zV{BpsKImJ4>tx_v1TEEd?x>mTza3CZ-~0iLLa6^v<$emVHE|W~zjef3U6j3e4y}YH zOBs_;|LLJUzO)H$hyHV&E`3fHK;c~fEk@c-<%#<5L{iQr{$`*UK^;_1u4 zT>a-xsAp5Y`cMD-bD_s-w8qV&mxSkkWu!wI0zg+*Fgol_<*B1p3+1Llqjt7zf zcw!BLHlhEH0h*QR*uiMeIcSCxfwG>_oX~%pDQ6d@Y~!8#2W%s@X+rc8`VY$KyL+sI)be{=BZIz&EalfzE9vyordD%l2&&!8;zpWdCt!enY#uK%uObfZ6M zL;r0;enS793Iw75_5kyl%tdH|PZj-l0ADfnpWIvz7Tc-&=Yxy-@2aH#u3`L2{dWa# zw-M)1G2n=m>%R-3`~)O$EErzG_*q5&T}7-6YFtEFi>V2tC}SQl4u)3hKWo8ko-crJ z`=I+}=)bed`fnGIg#LRuF?0R*D(Fx&g#No73Dzh70{A=yEL-qFRsZRC{YvN%`tQ}H zi+MK*AGwnmkD7-(oyWWJ_!!@a1h*ie>c4aGLTkgTY%aBYC*0Xr)_+HkPTPNXg2C@! z|J{cEyBY{a;P3g?vi`dPTAoW;_d}VNp>1sc-47p@P>arHJnM4w-vitq!UH_?-!5Xm z5pUeS>AzP)fhWkJjq$BRK(Pt`$OG{22H-i2Wb4Nm`cHrPTdA4uFnTcQzdwLZ?*JC{ z-+dfs;BOfE?=9px2d~Es>}zl*b>$(vxo-r%1JwJz=)YGa{r6nbfA_<`KS}!U5pvJ< z-+o31JL2i!HJ?wSmmco3 z{(BP44zb6u`tNGw`w)429$tAo!)WKH(0_U%AH;|Gdi2PvDe2v5FOMg9_b7i)5YsgJ zx-Lb+?jWZl?fUOw@c0ZleTdjk@cU@d>VYrf-PBk;tV92a^$T6}->Z`T({r&I`5A@8 zuR`*^ne^Y6@jiVD{r5~+|GgvWzx$x@o2VaeKsG-Ez7_p;n0_BZc5VMTKcS-k{uODu8%eo?`tUF0btAsy>c6KL;ST-xkNEMb z|K8KC|6Ff_0rj`gf6pR|UkBqxFnBLB9@KyLruN_e=)Y+H{g3`DAp#a4 z@;}=F@n`kQQXTU*uBy+*Di$0=(b8so&jz2wb)56-^fJZG;fQqR(Nl0lBmXm>eB{+@ zQ#mdkWjhXG+1|$ppx61qWx){8o10@82BCCx!!j%5#{q$`Ii}E4h_POCFkXc|T32I? zJ4SyU%?ms&BmeW-^2MV2pxw*&j#tIlnvgqwWgb2WxXsTEZnhViML{#}A}sV5H^B_HWPd2Td(sc*G#~j1H+VC)-ltmmRP= zx~RR~@e}DD2x-PUK|6(UcrJZxP<6ds`6qFa=J8t2~p!0uXy$Z*&V(d)bhWtyNSSiEN zQn3x0D()|?MN?apt!dZ1a6H11H058Lild%NRYm?C!PBR``{2s`N_~tuyPmD`@2*yk zfjAoJin5NyNfF0NloxlmaHPmF2TSa^{^s&O5;%vFm!rq-VC)Jp18IN9$~vxR<5)`2 zESG=x!f57=D`fQ)9Px^Ew;Zu^3^12}%P_t6Tvz8AP8Q0)qhI~#m4^H~no>*tg-Sb_ z^BYii?Mk z{}v!?B^Rw-gK68lCdhDl3zNxP`B!2mKt)GSdzXJ#I&klf>7(lmk-n!OmMu`j-K&&;tqhIyTU@8fwPEH`o_qLC0S{MJ3H?7E zdC z{dtxD+3>s(C|clwt3qkcZPdC{Z7}sKA!wyKVkQ0bzPiEa!0+aHF8}MW$c6kb$8M3b`54VmIpqIT z_&Jl_|0f{r%l~$`c&IG@7h$P6 z5i8vqQYjaElKgM#DSKofvk*ud&zYvmSW|9Pm=#zz^QoH1GWu7{l+B! zd*R=5ETi?<^wwe_x{~_69Er*G|C^KizoEzMFDK0f&}A?Z_=Y6^cOw5!@$4eB<@qW=GAlK(fu`8Ti{#NU8V$p0O1J>>rbJ&_0N<7}{9f*ije z`|cl7)BYJNb) z<`zDGwaX7Xp(R?Lo~}Zqt*z%iZFR0%afI4_j8Ir^*uL!f)(&C)(n6y@deA@C+t#PJ zcF?Y&y+QxUuwU6Lw2$bM+CeF|gB;ie|>t3lpp+ezfUa>`n2Z! zw`E;B1pmjD`LFk^HVW5OF2;Z9rC%G<$zcM{b{*1p6 z12KdD`p?RLXYtGbDZTWXDs++m&boIM0)6Q8%hbEg+4McPsw(N@D)?`Ic@h+m|JoO3 zcaGN0{fxwad#-vB4kFz!C@BAJ6V?uc=*8>Fw}7^|{@2aiMg5;c`?hvyfl>{$$)-c^ zndH$5+uMaBaC-;Y6f# zf0_U5s51xf!Z?KF@1*6utyW^*XK329k(KRGK>nWt-1X^PjQ_5Or62BIXur9N|NG(p zH3iDo+iMTw{O2%AujkbadPJ`4b^`7G;{3mvmi$86^Oxe=^Cqq?hK6tL6aVj}{}lCq zKYk>A;s1?g{y&E|)L!bp{J#wTf0VvO?Qk2l|KWE2e}Ocwr?2z!!u)@hRo3>?AG7|u zZomP0Mc>CO=rioy_)P8Mf%y;0{C^G)kjE4Mujl+V>c4BF)e1j`S~tS~AK(Uf$=Z#LKvh{zU#P?tC6Sm5%RyoA*>~FLzCEI=|%kVH-1Y^G%+c z?Kktc&)_#X4?gkFcCq8Q<`QK@3`>u_kcG4D1;)GF_7b^E=w9VUFvNUVn6Jfn@}7-&wbN_tyc&Ox#T>k3XWCRc&L z(K=hWjv;Etb{y39X`X|5iodzU3^Kmn+<6G>il#3wMWn3yX+e7tJ_lx;V6!t@!tx*tNEq`|92&5 ztMNazjQ{a)VKcE#fEK4zhP z6Og_f|HB>d--)g42xaE@AI8F*Q%CvV4PCB)Mi+wrA?(msVK=S35Bx78$4fbs|ASSz zm$2+!!Z-0TFnc+9iT|B^@ha(`1phsh|6ZVQ#pn~be!S}ao3VP2lMhA zapX}e=#8Tfk#Zv>!GHZ1np0l2_~&kO&QX*96Tv|KkA)iYUrN+UAN-#{E_&a{f9HbP zg3_y}c5tl#=lZtr>spyguKQrPr&BTh&o1-dGAF!5{?7yBd6e9m_&+OM7304xu9F;J)a=|M@^toByp)+!6i_aBl;&uq8Z+9Q9u+G7C`e7iX-< z|IO|EUy5yKO`=CF`mLq(1qn|1zq!o+wOp^HUAd@Ma-dy_9me(F&rV!l%@g^52Iqww zwL3vhel{{`T3UgH1xwUR@n3jZ&I|2t_X2LI2Y&DpbGNS^UZyfHfS|6E#p z#rglr#Q%-73@4KA;>7>csQ>c+WQyrs|L6RFE&P8iBmb9xf&9N1%&yOY?BzTXkAaJ@ z(p+BV|C!)(3G%S5)CT`g>m_Bp`UCi{mq!VkREhERbEyL*M%Vks|0m)9lVJKfWJdm< z$G$AXvC|zOpWeen*2J92xcw4527>>uVdsZeFa~e^f3Ek$yzR*Ut4Q~iGXFotJfjC| zre8@4=gl1jiu<6%QI0Pq{@;fz-a`7``FAJtkDdhEkF@juUDW?CCjLKKfd7wD!syzjV)zKh z54e6=`JLyR%J$+S9^&e~I87+W-^m#RaLVhoTocc{*vus2QbyaQJTp(v9zMG< zo~5#1L;UaatXxjpSzLRZ8%HXa{8HK*NJshRS8C&2lg7mReYJR8lih4k`b8_%F&qNmSK=Fos3A3n^1tR~qs&Z~*5?80|t z);Mh^a+t=n@IBmPQ?qf*Y1~u^`fE?Im{RT7+>U|Wq?Jt1gGaP?K(ob++!SSaY$han{w)Yjg z?j2l#0h)gO>g)RhQ&r@)4+HbZIsO2=@8Up86AhtVq8qf4Rvn&iugbtn#F~I8XI(mk zZC~a6x5(pToIe-1B%I#DwYYV6wz*y%>gww22MlOv=+`y>(w_j^bHFNJ-^6v!^D<9` zyVS^$^Y|L#Tw9Kh9CR0~uduLRLQJDcZ{cf{`wb5GR{C@qpZmKx=lm33-&S7c8|C{dS%yPYy82Ef8vm0#Q`UsbLmAAkE4-+yuN%-% z-#Psgl=~#*e}MDToNwm5m-Mga`VCxP#Px4DuAq$n;`lY!k8^&K^HZERa^A#wGiPaY z8%HZ?-^6)&Ila#oa_xKGnScI1eWyRobMyZ~`Mq&HNN;(@5eCao@Rsq?Pj)?w4?!%3;%-BR%83t(p6A zoRtIP5I?;)kNkageA`OKC(kyTx3-3ZY`@B41GXHMUSHmYf;*-iC zzdWxTpZ4@s@CaXm(ef!T9ZftN#?f0y{D3cY{8^WhnwKYh!|VIOjCw*{y*0P4F4bPN z7XSU~`R^g)t0@04?~ZUj%J~4tJg$}JgPaGI?@#2~gZmE83cT+wek!A!U;A~{efzT> z%Bz0ge%%Xv?Qyz+*LNM>58$37;fqwal@Fiw7_2YpBjh)(zJJ4j{sS5t1~d*F*f4O= zAilyw1`lp(8Zu<)(59iy!-fqTKD@bk#K_?zMvmgYl<^N2y9<-4&+3l<1diWwOyk~m zsLw$?9rSA}Jxpc370vB9iO1N}{KK&qZ z#P^FFck=AZoYf((<9MF?uW`1H{uRe}xPOxKD>&1hw4GJ@G-vhg=Qvx(IZ~VRZ#jRM z<3*m47q0ZBw!i26|5*TML;2Kx&Y$?azHzXP(vhRam7C==XQedNKW_qVzXN~F`5w;i z2aT;jNtC&Y}E*Q-XIp*YD$6-3;zI{}TSZ!<-o3dHH%H$LqPjh4T%Z!7I^7 z*$1z-MVyy#ytGh9GQKwTe0C}sl<}%O=Lt!_IC!uQ`_O6;CPM$+*2D|`Mj9x zZ*cqt*I(x>J!*%HuVAks>5RLG@(6i8%sHpoChpN249CZiyU*1#>W9~G-ov@qkP5C@ zzBZR6zneKPB}404_1U_?yAHuGJV$!=1Ac$Z(I46k;JArv)2!uK&#{yI{O(=AaRmo; zHhsJQjPqM~9|7VM;y0d@f7|OA-;dPyp2&G7#}tlf|9g2*Vtn zNmJn}-%IyIf8QP2yeWU%suE^36U6-L$cEGE&IGn*8qM zI0xC>#<7#SRvGI2fP8IT+;HkrER+7Pb>{BVw1MEO>HMa32R0>n(dh`L{m>}n*>j$@i#C1PHUUrHZ^gR z_|U1kG0)&EyknaUdJ*l1&k{$Cjm}OrC-eK0QBXFZsj+@Q-0V_=usyMvosi ze%$EcV@3=aIb!^n1q&B1S+;z|%2lh^tX;Q$!^Yz_mrE2O{`>VCIwb4YzhA@P=B9>$ z&Gn;34Ij}sc+}vrV@8i0G-mXe8M9mG%$+yiuUN+*;ZT=DvikZ#6mI&)#wGw5I%4$r z$t}~nG?|d=Aw!y*M~@yeW~{B>0okBIw#|nRA2DLos7X`#&JAhS8mb0NL2az<0u5*1 z%05-Yz{ZBgK?7;m4<0yp$Pm8nLz|k04I4VNxp`Rgh~dMBj~q#EqeqS!J%<0WXZ%QHQwdC^Wr=j1V0a<+`6{UZ}kpBD(>Tmy|VbI{F z{sa3D8Pqhm0Z|-0bi|nPHXNr-pFMB>f`yBgEM2y|b2%w@(5q|A8nOWc`#1C-G+F)Dq?cKd=*3sR^oqg`IMVGP;=axN(4qbIk%cV#5 z?YU-OOKHY|Lzf=BcJIEH^+&JSd*IMDi!MJF-^uoe2d=!5her+^O3z<$)q%Y&y_YeE z=xcUgGp{9J*nI6}3%WenweRSHmX`eS!GlM5&@#8>HG@ifF1hN+H3tsuU(j-(E7qk_ zOF8V`edV&1s}9U-Ib24SVvcDU)a!f7=pjk~(8J3kk!#Af@fzU(3c-x*d34+n{ zaCkSMl6ZE<96Kb)<9a^4yG;0w<&_^+V6>p>beCOqq(vsT9N4hrm;>u)?LFqe{P~G_ z9plZ*0or|~%-VhQ+Dne^-go%GnmN3QQWjKW51=jcTMoQzE|jS*k2oMUe}31;kx6>< z+Cio6IkdcrLwT;23J{R+z^3RFf)BBumJ-yE<*VFr)c0Ik%sn^r{oPIsMZ>M1Q^jTJee#>gmZ&?lc ztzVWCu!r(%&~I4{`Yo$LzhyP(x2y*Jmeru&@^<V74fy10(B?E&)=1_}8bNIfq(5M`1iCr2HtPFjJne*eY6%X^XahDH zGwbx)XFTmUy89RL8gC!^O|+0OJ=$1}JgQP)#;nWw$Ak9w<+Psq(FRS!s8!EuUfSQJ zHJ`>==o6*0cj+ZQ})V3k@+P2WQJ)VBtiO}klj*+VF?7dAbO{2dy4@-&tIeXXk&0JKj zQ$R?24V|KQxqV%Y&}-%eUUn(4j}K~qSMzm9gQ_MCGV&Yq4)os8V1cCopIi+WG3(1- zl5rw_|8#A8RKH>8+6?74_J4}_F$cgk3-k!D#E(5l+-t%38cyp=Q&Suj=_ulsO4GWD ze>%^{mG<(xsf4KGXKDNerCI!*m<%rKO2TtldOMGqO~%JqNBnQ_J2`2v1*NmNj`;6S z@qf(<-l08>a~aonl&s?az-*gR>HhTOl*}g`gLtV1J$HYVUiA3mtd|N+y^1H&xL9!h zf#p-_QV17-cvd?H=SeuT()fC@Tdp%n`lmc=r_W=^h3epJ%p$=OU2WI7Cdx{za^hS} z=YiA?t_I^ew$6?ea#y-_#ZBixC*8soiB@_JaSeCM-@w{uvmUCx4WK92i2bmmESdAY)>>)Q%(tdr|(6lYsTo$W47 z^)oetdZKe#&O;~?Twlh03!QoDELOe#-J7HzSHlWqFsjUd*9i^&JNqN}Kej-6_tB~c zTh~K%zd2VE?Hm82wn%&VC*`H4JZvaXelGd)-&N0;)_Hca(b9M*8!ySqL zXIAllU8y+#UEA?6!&v*_|B*8PPjCpUW^msu_n&l^%t@r2jQqMXu(RQd@qaSXI-KTw zU1>U8%lSW!Jc{st8NUB5bT4xLAIG{hn-c#QmAV@9yP|V3U6L)7y&cHUfSVTp_py|H zF@yZY_`jXB9r?eVVv6$r0%l*gLHk_{&gcBU5dPl^O^WmXVcKeUP-f2mTd9i=>3&c% zJd*1F_i+dK39ZEatZ^d$-%b7REB~GOpYwlR;(u$+(xuam(rIP>?@Ii4{ae>@F3SHm zCjRe(Tf=DW%Ky7cN6G01-4tquzexN)!fG;a!i7ivUx$mt8~eon7vTS6)W5ru6H;_V z<^NqZOD|F0#%xK}lIivev(%^nZ%E zL$|_-p#R%g|MncY zV!>8_4r!DZ7(`#dIn0$_kSlij7x8@)J-5ig9=kn`9OfwBSkbeH{ATJ$IO3{9U4zsQ93qx?;${$IS0`{SPh~Aao{O>anB`Xm zPWCrkt-+mL%+)@G6m^A1SEP_P(m8go35v$f=~6vf@4>U+kUQ#_qpKOkib`S=`^Ln| z3UbH(xfHiNITEX(7VYy_qb2uD9efoNbM$Pv!tb@MX)R2?b+ril{5~C$Ah541RN^eY zuA<~RO|F0tt2%i$y*T;jicR+TUHw3rl6JBBLp5wguBEbTno8gPoL$}2vR%{2Raaf* z(|0~GR()#W*}oPed+)Xr#mt_#wZe5t#lv+QU8Peyg!1mr0#d1wr&`CX?@Fx{Q3~w; z`@HW#sg!<^r*u@;g+2*=6SAqqh8FZ`#EDqG$ z--ICQWWXZlT@6Jjtr-Tfag7NNW4Y3Xma2%W>{-jTxrH4~h@)2;`d_PxQOjKKBSQ6iEr%fo6I~`H`8my7x?KjlgXdN_X zuhlL}kMH9vq+X0Vsl51BsgCxTIeDf0n@8lV7K&JwpbnB>p^L2z%D?$XUR?Akn5Q!A zS#9QbRtX4QrrHNAH3QX=2Cy(8i$oiG*f9t)wZiU6x8ry`VTR(?` zrBqPgC?!!p-Dk}@E*|O%?Tyyo-&Oy+CUJ(G=lXvf`A$gI3-$k4;4w7tEcE{fYJyry znbt-<8n~>_Qg$E^jz+qLuZ}Ba-*tV|4({fr{&$D6(ErVxwfc`tW!F)gOz~2Jj-%CM z1;fd+qW|5It`bIY={O}5naTf1(Lg|E*AVJ~RmZ-@RVpuf4SSp^I~Iu)i}DYwtMWk=Xgi`-^#OU{XZMHTPSxa zvM`0;g^crpKd zI~1s;ZBeO}hVnk|N2w3hx9UD{&b)-a@ zA4W{`R!11CuOalm`p2CiLjPNi`x&bH-2c!ouzGeRkhlhG=>M@`;@Wd+lL5TTd4kIGZ>lshh4@#^ep&`fO0DtrJM?{*>zfaY$V~@2s;F|?qyC=_yd~s!6(!8&*$5vJ1Y8r0dH0! z^XmVlq!0bS6ey+eOt7og|E|p|6{7vWI;H3X=;f$08Feak7;A9lvJ%=ro~{7Wh2@w! zG^w$-r2Au`X@t)DeCL_qkS|3%0G4b}SfH^uMJ$Rj3sj>B!Z$5c+>Z`evSi z44lK7W$U5b;?gOc)&HmAel>vKW8stS|Iq)gz90I32U5M2xa$99=#njPaTu%8u7sBr z{l5~3)&KJKv?NQ5u+=wlZ~NkSxZB9{-$nml2+ynA{}*r<`hOi%KM78&|IdZXx&FVn zvfU> znf1GGVLT%)t~l7j7}hdM+Yc4y;smJvKbrLa2_5wRY0&Wy6uTD6odXP8;Z6giAOm=! z{y)9+if;7(Zr*G`|DT5RT*Bzse%$X4lIl44wwJ%(MgOZ)#M>T(d!p3w8|{DfzbkgT zHnjWGYU#3<*$l>^|9z`wch^;WA@1v{2Sr8y`@OR_WUMK?aa7r_U9>0Ea_S7rkG%Ru zecckr@i&%puK!&Hy9J4v%c1^nq4c>)*NMR_;)ecrcg$(jJNHGILX0N(z+eP$ zg-1!W|L5~W{co?$H5R8(gPVzO8_BWW(EsCj)7KE~|6Knciwvp%7gO2^ zLnBQ=nzjP{R-TWdmY+(Tk>LMuN7awnj70mL>ha8ThTytATqH6mSpKk!XbRXtgcm z=-wlBXq#!gQM-+%HK881J=nLfk~){Mc6R9hjmWR#Xs09Nq5m&(aww9z3OI88zXxeP z2}xdv{O>@PL;tTqn)f2tE0OTykoBcts{TKbtM$YQ{l7DPxwevfGZaz(pNurwQ+sLp ze>>b)1K(VQw)%g25BmRn;%!NB-v9&=F6HEyx54)RL7<%pwGXBzX^LpNx*9sSmTu`* z|6j|S8(xC`zZ?$lXSDFL(jKPX?_(uI_5WVRGvCAcHSpy$#uU~6Z--Bp1M_vPuGq%d zZ0P@U;XtncuR?m%|GUZYA;yCbBQtsXeHm*|+e_2`&r)9>rjGpt-vRai7x5nWF>-KSS^s~E zn)N!Ud2{+od=Xw90@iKYS|HqlE|2jNVZ%F$8ec+`2e~MAy$AS7Ssr~<0>D$zS zkFk&C7x8nr1dr6v|KFgVd>EYe;`?Cx|F!H%)A!I-|8GPu=wNP}q@w?q^K1dNa4EXt z7~b@!KKoXmp~=YFJYaCwUUky~w7PpX4NLti^}n&y)vKs&@@63CwaC|0a$3W?(EpW| zR#806b33|n3J`2e?T1|dpNCh>3iSTzlztxPos?G5|103ic%Hp1>HkxKb^~&M3MrPO zcQ#XBPE1-w{l5;*ji6rS`hORC_IzY-chdhSwd?=wXuiIN;lMT|Y0HUd$%_8J6bZPj zbT6=k{=bztx4_@A9O~)YSnso={=bFV_W(8cT6E}US|E2+>Hq7g8<(;K$ANbJufId+ z|JMR?=>N-*q`rn+|NkNSWjb>EY5Zq)@%w#rkL~|IPx}8WtWo*_>g-_Z=~7lGUCPvr zC(ujk|8IkjU){%$=5Mk$>q?fVcp93&yMz9J1GIiCei1vVEk}6s8tUs5d?emZy-@!j zLHoR$68jpqQ-i)rqLG;??@Gx(Pd$5qePHz;vi<*w^wggZ1MywSkDT^Wmh1mt@+Q~+ zf5i2Ff^D__f5fDOEOUp5(V6Z4C*a;g%PwO97xn+{ ztfK#a29>^E*8l&7e@*EBx!FKGZZ>6Kr*{4+OFO9lf5ncq&mc2@kN*56ay>TNm8t(f zN6q}p)S_5fnw4FRXG^aCzX^v!{}0JN&Lo`XtT}s>--Ku%e$?P&(--w@bo*}VV;vms zPXFlBbTG9B4k!Jy4QcMEf3BfLy%KqQ75e9dq<>E9RsUQE22;_culhadpLbDzE7Tok{&}kOzNCK+@Lj)`y~>X8jZy!+ zike^1KL@xE{d0iY|JX~=KTos3)Z<8=_J<4L>DT#+eT*+tzby364_GAB_GfE$2nkq` zjV-On)IW2w2TC8}FWR5~ix!jm=h!UQKf|)nKOaO-e!6r$wZC7sJ`4TxQ@$6sBK_Y< z?a#^CgUH@rQ08T!jPN62>4HfI~2|JKI4=v_q)3Wokiu|m}ZYzz*{C<_PsqkY>HYgj-e%N!fmh3U! z^c8*+M4}iOio3Xuca`Urd!OacEiuobYw5<)3XuPWpMmk~(&4Y^J?C-aZT=>IZ!TSf z7C&P;ijiMyhlm_wWGZ|ZqQuB8a?(@4wEZ}IV!Y0wK0Syx#xs_qQ3JSgTr4acTH(Ui zAVo>f10sDSge!2bvkOMe?>r;kL)@2CO($t8%O!HE<3W-HJFcnIL=qd_xaUBM~?wLvCP47e#_Bf z9HZ#rWfqvaZ;C0k9(4|m+4<+VuzxYWX&(AJIQ|tDZEXU+iy1&#q>XES`T-0D4z0dT zowMh;91ST5YWpkYz|6pSj$SLQ)w9NAi`g*5?cvp#KzCkBb zgqMfB>Kej_B+}-iq54|{Uqf2uf@v)ycpf?BqqkDdC*8?^jE6aX;P|Qh*Ed9Nn^U#? z>nma`|9q}b!C;P%e_?Q3p>xnjUYnG&3zZSij!yVgne}W?${a}zctQ^4YbA8e+jmNi zzoS$6ECEE`A^%!+oi!t+9qG`z8YA1vzoV0m;5sJZJ}Sz;qn=%ZI6{+ckf8+EIFh%xj@>gj~KVTk0F-P&^&uauHeY9H$Wu z(>iYElkVi-(QI>(`|k7OY}5(-4dA(>_syi0!h674eOe=<3Q{5y^vqZ7^(3i($C^D*a;|B%Wd#ONB7f5*M%gW(ifwpxfAdE$PE zEVRH={aEyscdW8`HD*guW zd?Z$(X1LbEpSJWBDVFj-mHZdc>rnpn4+!~p+`MxbMqW{amzFjGi}HV5S^gK%E6L@5 z5qT`*ZZYvI^6!32tkcUOc3r7seC2;JJ#dYN4ts_2e3Vp722Xv`A4`$?e=%{D z|FfX)Pcf@Zzq>?`P&bi2Z7=MT-peA&ZalKjMS%M)2T=D8j-Rqx{?2L zupEc{Uq|W-DX|HwnEHPwHOO&{OA}15pvU)Wu0sCzq-O(pQjz~NyOsZ2;r*c`|L4(T zSN^XpV{jZ$zaQ)6eM$cB#*(i6`y$TQKyBs!%}Cl#EEl=_U)fCwo#p>-?DZdQm;cwo z_XnZ%qgd3G|4$(+uSRaR5+|4cKcU38@@5Ks_O9~(Jt+7Q{&`Qu9Ib{VtHdkur}1x3^=TyAcfj6wBoc-N?ThtpOgdN7C0K zDQn>IOyD0#+_g#mms0ma{`FW|i!3Ss8=+}GDCt~F<-di$`ANPKYubO5|EMS*PV7l{*MQOWmv*SQ`RotpOfVO7|QKl{`X+F+QbOOX<&LM zcH_HCZz#+EtDwX}Y%4b-g>$e|9RjYS>8{{b=j}Lq9s%QKS{m#GkAL? zv-LU$zgoHcT!&=7D#_0QQmlg_XCqZ1Kiet)N~AWIpVuY%xu#uyE>7}uQRnQ*L;1Oh zk))4tbp_V1Kg7=aaFU=N)k3Hst3h_Qv19~GMuXJ{De)s^`PtKh{A4Va zwW+i)JFPS=TZG;3ZWiEr2C6<)8ka53l%E+{EJcj%En zcG3DyVQq#D09d5YSDDNCbZHkbKg?3*e~t!z012^vjmyr>8nf-$KLY)<>@qBF|5`dL z`&Q|U>G{|GmC$JYF>m4Z+Vs8& z8-e#>y)u?pwz7)^dxQqt$3o~ABB&ddHCyP$Fi&%|Ofj_|StQuQ49c5YYlYSmcNLa$ z5xmkS5J6mQ&j&rr4|_b>zSmn`uXFntVM&O7hWU6H+;=uG)7#zlf8d>7_VS~ZLYlhf zi4?bgVxL5dQrO(2iM<-FGeY285bZrVcD-btUR7jGNfc}QV_xSp@IIbIPsmvLyIQ#` z7hzY3yp?gKFgR+yAunP1$ZcT4l=Gwa63k88poeMf<0%{391KAl&p|yoEpAe*NRV&2 z{A;(;x}^LoA-Vk9bCmn`>9tsf{D&p0Rv8VnE}~x=c24DA+eJvAb}M6qZA^^pQO0ba zkgHnxYZ(ixsCE(O1?hFA{OjlI+Cu6JXDH?Lc6U{=DJK8JXhTWS;iMT)JKY_U<%I2@ zetaGE!ZlRne;g2ur%d~TwZm}QUm^eQ+1#IA#0YwL75O(8JtLdRQ~4jmduIyeeU@4! zgk@H$OO>dVa#`E5HZ6nq%9L^-Rg9(HD-x`Wv4^>QlQv3h%#PKb9`diHOlzbPrgRmT z{~^$MAUKEoYkAO$>&zEz68|0MdWq5pIF*JIFG8!ePRns%+Tt%?LK zV>439Ve~`i0@)mBFcHcq|I?s?ewBLDDF2qw3PvqJRSf>QqzU=gdwUdZ+K_+k5|e5B zG;?TA>?r@sp{Z7_+F>}YbLGF4Jf?z4wfxTkPHiSL=u6m_oZUhG?fKLWq22Vzca$bZ z0Hk?;;Lo6tL0g#eug1|!Soh zk3Y)4YX)ldloHkQuU*bLFQYj-V^7ma%MRA1zO3T5c!zY^$_|0TfdT2v$HFNXZj z1p+;smm^_|XxR?sZ87<&$p1nh9Fbb^T5BdHnRNb(`hO;z4*A~-9BY&OZ|adI)i3(d zGs@+E2hgpfKfQ$XtIG1f8u{Hy3%V6KE#VOn@_!2bx?=F>^1qEf?hatPB+35@dUZp| zHJATWkV+HHD{(Idb`TeYeTI+sN4sj*mejEJkVu!r}E?pA5G*aIVPz zDcFPbnp$4Tq?fDVSSXbL^P%WUdj1iuKVH7e7IjE zDF4Qs04=KJe=ohoR%r8@B>x8~^L+a5C1h3kzmzgJ70Djxo+1zR`hMhdF1_o=lltgy}`F{?(N-L1xg9Yp^EMI>KeXl3a?;-y`!Zx;>(%(zZSNXrQ&+L67 zK<4K`j~1l8wO#&OxR>kd2Yu>Y4R9SinN?7Jl>Z&zs^xY$JY19HUk|B@{GXTPe>YNk z4CRlYzMllOb`&8$@pAb;ms)=^oCQAWKhS z0lFOD;M?#m(qCEm{}dc~JGLX`|1Ysg?1wi+<^O$Ha9#w{_hVPfu*p2f^}XcuD|U?k z2v*d=**#EQ`TuF@pLw?x>&ln$mFlbfe*ma{i}h}Ec478+=>I$Ma~y_O(T~gWuLtu7 zp!^5m^x&+x{9gzqTi|9zel9M{ˬrt+=@TTjT(6<~5Qm?%H{3etZdF?Rs1@^d%T zQGTw6Cr@HUAAz0oDoQ?&I(P|OScY9`HTJxR`Y1m?1pXgVe@|zP;rZG0>}&A$eI4|t z^7C#iq#uGKr(knjf&H+U{`?-0J&3JJ`n)aGuZz(Ik5a$>JkjUDGJPHe!=F~s=ZBP4 zB;@q@1@t*1dk*_sU1@zbB9lH}FYU;#!teb&{QjnAugjK|F36nW=qZ>WHCR*Hh`D~tob>|-`vg1=awGV zd4DkQw+AVHfoG7{K3{I@(Mn;TGHf(tLI^(v`+nMUgej~e`Z*a)k>jr)in&+g?~HZV z$q;`>g~ip;X8UFa;dH#&xq{9>wN)qn_S6mb{hibA3MDZKeCAF>YskA3%^F7J&*Rx>>PjdXNwH@(ah$dRiHzV+$QfeW_ zLXO28!Vz8pL3h0#h61hDkqZ9yj-7$$Xle#s`*GzuBZk1={^lT{2>d7Vv^BkTw0#A4 zj;xCR405-nuZP976k{Q(Hy?h;a`1pNe)osU82FXtlk3 zcg6oWc(I?H)Exc;baVu4dv_MN+-6dg8vo#7lZ!- z@LALW{}n*KjK5RSadY9n^D%AP8N~k>@IM>;PY3_w6aHrs@4WQ>+A{vz`L5p%{)ZR? zJFOG`H_jILwPx?-+q8?gpHAuZDmX}~oADpmpWr_gN?Z@dIsb(JGVU9pobZ1f z-0o!L?`TRd{4+D*pPn6yukx1}p&FdcX9fZr)Dpf*{y!uC&yxR-Y4=Qm%df##I?w-e z)V}Kcf06P(HOuqQzZ3C&Nm;^$>bnF+k3XT2^IX&qrp-g;Du2@X9A6dnnf4~rdxVZx z7uO15Kdjiw)h?!1N2)h#1$%9NfpVR$*4F~)C`JAaGDc6q{$yxcf7QBr`sv@HCXP2f zrS-XGY1z@+O6~1vhO2<--CGQQ%QLn7tc_*Tn*zh-_Vv`qFM9DR`9LhF}Z%Yf|>X%SwJy{8ZUYhQ~t zjj8o64gS}*(N^<6Jjnch`gPYMtuOo^hK|%X%|24_zp2~?=nVrs+H7BpMIQzK)$g`B zOsyTQ<$51aAg%sVwuG$zwQWGoPcfGB_6L(% z>vr&eELypCdTDR##QC7hpx+X{hw^_mlx!`;f7g2m{%gr`uXkEOIOY18Y`nXYuT57#rW^~2lb?x$uR(^UDst|N4O8CF0%>VUxG;QlWF>m$B3;v%?J8K`UpW(DZFNFUWLeH~mrgwEHy)`Eh z+p$XfGV*^ie`=yy!M6Tzq&|ac!{CE6pmY9Dqc2b^ETtUzzcTTE5$&uKpx;E=(yM7x zF0GZEmTu1fedKchOUHTe|3o0al3cH-nf`Pn&HmPSW{RDUUsv$|^-#t232O8I71$b2 z#CCBnet(x@4S5{8znwPhLHK`T^1JFCgq;5m<6)yu+7jBGQUBiq|DWhRF>k+!r6lD_Ed_1{_Y zyK0tyW8(jr%#O7F-vIybq4oQ6tgN>d;{OBi|CN+`H6BS7{y&R-@JcMVe_gZu)9I_+ zg+=InRs4UN9>YC}|9@FC{p>9Ge^NFptLFct49~P|XI3kN)$|I2{#Pci#cQhQe+F_@ zE1ZobF6e(FSlm*k|5ZqJG5Sx-J^|f+h1Z_+pOXCq%ok;YGwJ`2SW|0-k0ki*cLe;u zf_v(Z`;mfg;9XcNjL8nM3*1l8AIH&q3iy9pTAT_0i#^CsrMJTo7ndkkN(CE)K^=+^3&TyHJoe=%Rneb}2i^M3>1@X_cL@yB1b3;xYO z=jwm*-~Lfp;VOl=B9ATk)=~?9BfGqJ&B%$??CYl6AUzhO*yO`dh3#Z{gei&Mx>b zDdRsIE-ZvkUGYDIR%76QI$xB|_}$7k;wJFF4NKmYv=8s?RDR(99sIEa|1WoXFaH18 zj{lFk;D2Ez|JN|aCI8pq<=rtHPVk?B#cL+zUrn2rsV%Ohp@KLGsi@Aw)|XyN}c z>nj{$1m)klz#sX4gZ$q^{=evw|MD!)|L;nNv#$AfDz1F1rj5V++o7KJ$nW#3cwUJe z&m(UBE>Ba*F;5+D^1M5rBNyXVLM0Ec{OZNo81V(Hl%_89y}y;GabMAsepCE2Mjku9 zGZCi(Rply&%qJa#->R@9_&v?PTz(;fz`UW8{`fq3;;9VQGyrn9gsSUl-H(RI8VG`OK$LM&56ac8X~&MI4MR zgnk_&2fuJy+r&Q(Q->5(zJ38&SNM#pAEh~H3(~V!dPbgF=fo{a4Ow;U&#$wz3$IR7 z*lG}`;B;>J^GhyXTB-cjnZFjJpmgxsZ+_0%uJAd67gW~QR$gdZG=;u&=A34s5(v5<_y-0;Y)CkV9jxA+3Qg5mITMD?xmeBJ)u4 zq6WseaxS@!duu(_b{Swf+RPtM#8xgR{ZW$VchuiGH>r?TyG2 zHH-4(c&OLbX`yzs)p7oyf-P)op(|Hghhxk?`aRNDdyH~u&2K700wPBMmqI{YZv7DFKVlFh#AUqN)KG;uZR9~74DexuC!Q#rJ>IpoiOHT z?pzhzxhOHN?MQg^d3xfnmg$cAPyg-Ef9~WP`Y+}PIBVFTM|J2w?}az;X)4=;oblgL z|3xoK_|#p_1`r4PI#Ot$ zr}{CGH|jsV;H_n$|D0)|uY9ZnqegJw5dGqvS)=tJ*MCZuBOiMH3?OaT5l(tyKBG-Sekgpt>x+nOi&_`EtrVv+1XHeoSu3dwC zHh4}2F2@)gQ_HY6xC+V~%9=vl(0{H>;@k=?5ALKffwY$EsDx`1%;IlyvM}ql;+W9X zBoVHsKP~as+fFk#<|4! z!VG=~kgs}C3e52_v8(mpRQ#fH{Wm+k@9t+9{b1X8i?K-L`fp+KsG19&?)=@z8~i;= zE!ac`V7<^^$G-m>p5*#(Cb7&#{U;Yf|IH=WSwJ@poaZ1VGfCkpFs^&Okh=!*5@J>_ z?2&%Xaa6*US?gka6P*_q>xt+3&z+^LgZk%({snjv@zJAg(*b3Z~#H9=TP~ z*#wSys&!oZMk%%)hyJrZG?Rl~bMYl}#)>O*=~rZZbiCSKhip-s$`HTlvivg*&bjVT zuK&iu2W7^cHA-;DG_$#OuNZf!2>qw+&EO0m<=ve(Mo}}=e=}1Y$EwwT`pY?fHjTS+ zlqAdpQjKv98m(a3>zvJH=nCIz>Q*bMn~@0jz?se6RHSSM_N|KkTL_*DdF%Qf!rDv; zQ?UX~r>@Kf!udRPZ|;Riocd2cx`E`7>%TdaGJ(|Q;I1t0C^Hf%boHPTxi~+=&=tNd zPedsItZ#l8lf2U&63jKEysWy;v zMv5tT-JMK~R%R@?U$gpeB{``7&fwWBMi}P+iTdv}o}CQk+^^?%)qkguSF{6a>Ay3G z=Xi9k|IXpQqW{jqT552m{ZeTY@L2;Z`foF^_7q&TWE(VlIiq#C{yUKL-#&71--$-v z%!dvaGQzsKtp6^?O1g$885T_2e-{&L8@ARllc6wFFE3^^UHzvI<~hV_!5*mo zJ4*VC;YH}bL)fBwl0U!N&Rz@s=e$|Hbw>f)B#u$Q>|7=HrO}@3ici*>*hxnj8=B(j zJFEVaqt*#MP}P677Sw-Q<70oWe#F#^Vi@Tr^4u>^v>&8k*ZMJ%c4S zak%Q28byEzG?wa$5M)%wpbu-J)#`pObf2tme*LpyqQo zg%RToVA@gt?EudW)TGnkxcYBvkNmxgn7gs^tN$*bK3)VQ>c0!nNt>XFt+NI=O&(n2`TdV)vo5mHh)qmGu1y_S@hqnD_ zK^*1kBq(woTs|xLn5zFS0jGYv8OWpDVf;D($~}xN}9N(0`vRk2d@fyzgHBJ;C$G7{PcI=Uo4}+Wei|cOPzrUY`KF z|AiN?`tJrtW?qDLZ@`!19%h)G$-AGy|ImNWL6^tL|6<~V{`+due=iX06CL#5tx5kq z%8a9Tg6)^cDc64wL(hLi|GfY&9%q(Hi8*ZF?U80aQDSyf*=(`tLX(SO1+1?OdB~6VR*wHm3I9 zD(K{DXX?L|N&lUj^q=3HX7U{YY(pr?w##YIB=p}pa%v(~Pw<_HtcL!310^k?Moi>u zWNTp`QZkF{T>stDN&lS=9?p-v5&idOWaAFJnO;UMI0es)di-Oqz|VUnb!0o^g$t16 zGr-aI-(GZ#`tMEDs&|!IfbW`K^xxkS?`!xRssFx`^xr+u{E?*pK9Ka^E2$^yzx$c} zr5xXq^xs#Z^*fP<7nn!&H1obf|9y)YlIp*^;qgFLs8au_Augtr&$4FKNgPv?r_|-F zC-k@N`tN}r>Gut!y^eK|zCfLLlrhndlj?iuk>~grs{g)QdXU+8q5qyw`tNzXem;*+ zPqqGg2sk_Hzkk3->xbySyU;f!Rx8>K%rAiV3;1(6GfVyVC8*k;>!0?b|7K@9*cCwi z_agEU`tMtC_ax>3EXu|*mu*Ov>%W1_4frMAHR`|LAW{DW57mFOvtKiJ?6>H@^YHIK zHH~bp1g0t3v&F?Uz01 zcI)r8$mR^NaL(*i$l_~|D(mmHz0}{M-PGUPNb@u@a|ii91Basi-i|ljJJDUYr}}#_ z^EMxZ-&azjHo~Xjc-`FygpZ{9`!?XZ6z{1~;QkP`#J$IkK)-{?^6jbqzL96PUmX8# zB2~}zcX75Ai5mu&8d!zDQh)n11LO0hp9592Uv5E%KSjLy((}}Thp5?KDvi&+o$Bx6 z>^-dGbpRo#AO7B)`1?bo@Q3&oKApS(zL)s>sl?x3C;r|^t@<3aeGw0? zvDEn&!Sa*T@qbJF{V(R6{HpXX!1^EXrWSvfXQvQr$HdHGMu_)_bbTTT@1= zupRf~PP@oU3AS>=*6&rZpgl51COX)cN>R z*t50Q6b)h=W4c=HVg^o7wP+4`yzm1Mp5pY=ejg)Vj)|E=jN;{a);epqa}-uCI0_#0 zFOI)ywUlX_ig~tDK+9RN;MlcRbVvDOgkApiHeTI1UpeR~fink`0rSzWP%Jp#)Uj>t z?%MnUj^g+$@wVZ#i^~Zyaa{4G1i9zPQ(yS+IK(K*v{d1t52Atmc1j<8__!(yr@Bgf__FzgCORUXPtqRqm&d z&N&uLT9S{n0>D{*?ea;}Z@TwFidmDaV@XqR~@K|EY}%GJJ$2ImUTgL;!``8d|m z%$55L7Y(CmXK4fPM_(Z4zoQ{V!y@|lLulOu|7VlSMEWtaiYBL}sy)aR-{(O0*>F>z z*y8oS!vE>X-jvb0Ttq*wXqZADO#aUUij6OU|EuWBHDT+K|Mp1b|CZFhD+)m+UOhd; z7Wyczc3m`RS((R(&}7zQ zzYYH1LTh^uE!N=w?Y|TM?}h)gNehPH|LwH8AH^in7S^W5^(agJPlUpv_2$$MTx>3x)7 zi#&V+qnwBrn8bB8^pVyckf{T%fHv~9hg8Yi*uUS9!zwP8V;eS}h0k4#HwA8St;a|n zH^;}mR8XThbkS?HJWI4Rdr#q06c7YeDme##qwMgr4F1}Cu=g3y%)@(gi(e(cT!QY! zAT+g**{iXisvnc*C^46x{4Df(LPfb!F+4I&YwuE+g+(aka?sd&eGmP!Jf9a0_L%j+ zvJV?QS-sS9Jbh|kz&^I|B974JkmQ&}3VWZ%j6S@-LhZA>gz$m$X|Z6bVrBnIjOC3z z+<-~^Eki6U)!1Th9PjmVG+m^LxTdy;W9+Em_TC~Fy_KX!UpQP84yAK z+c)7oFO7XB&f;NQq4Y}H>1Cq~6b-Syfs_#E&=UU-dv5}#XH_12KlfxZGnr(PNivhn zWSy*&ecu-nk^o^RVP8Wa0fHd}0t$*apa^wAEGkL`7evsqh)WgRweGdHSSwa*YhSlo zyV&}+-`nNu_y3>kx#xLidFFYB`hDN~`@KCg_j7M&xwdoN=UnGH=a{=?%Po7pUPqr< z3xFkwzqSD36q?{+$gUQWfJxYb-}ZXF)2lz|PLdjfp1r1W983#<5LvpCA8^PKp9-6h z%cJlB*2BBY*KL^geUWrPz2~YY=xOMaxC3W2P6d>u*_}Ty?Bn?t8C( z2~31l{<_Ytbknm(I*;Iqkc58Gn@Sq`%oy4T%&m6#^sAC8N|D}9QAhPT5Kld)Lblal z!Xw05RK!V-#`sc&MM3Tw#8s=R9-)D&R)@F>&#T(&hpXv3GGm_la@rTp^`8*y5fHk@ zc=~qZW1&|6CxG=8li{E_uS4~esH+)Az?h2cH# zswH~3>FepdQvKjU|Ap^*cxy{@ZCuVNtxLb!t76SrZ9ZyIYrbA-zj^&8~xG&Kq^_G(GFw2T`5im9(44Ss%SxgTB?uxU1iV|E%8F`hMy~D^1%I z9Lk;43H@jPqm6e;+(fQQ`cL@s73ze=eHiu56>3*Lk39pebF~J2Cfi7>{?iiberB#k z9Qx0z(0}ger?q1OvBJOCIkxH^@vtVB>p$}t1vKFc?;eG&dF{G9KCQifHJ%*AvXhcy zFFb3d`p-S(JoIx{8ui@Kf+WS=%P`tZ`utc|#uLLdEkH0C`&MYaSUFz%r8|Xp^6QKP zuWJqJKX)_;{pVhpdN1jJmFvGrz!GyIv=O%Ax1-HcZ~s=HRW|gt4*e%D-2=@%pVXMz zG#k^s`#eqMPt3IS)Ee|V%=Mq^=DF*c);i}AcXF?9x1NRiV~758hc@+}t6!*#)H;)( zNUX}PM{4N5X>h@v{`4aiUg;k*K9t>BgKPEAq%19;t~%{_s(#{@-^soEz^VWArw;um zf6MisbJeYx<@(PV(4Alz)XMeWOiD0j2f5W68nElk0*cUo?!z^MCtYyDoh?iHuY*`) zc`_SJX7wO_3H>*lC$os%2t4Y)`H6PwoXLqNwL!QD9L04ZIq1#po~7;xss3}- zeD{@fCxyvSO&ODRO{7qU^yW8Z8>!@>^IY7IvYwn=;c_A8T>ni6O8w>3fAh(q)*wXP zl&}by(v#3tGABWacFLI!ta_TO|MbdtwRHETYyryo;HCbX1C16Cqmh{EKlcF`&9i05 zqnd6xb;25DP19$2S$bN#{#%TNI@f;-fX?c2Up7>@qyBE>Sw)pJP>xmM*0EP3Og#2lcTM_H~q z?>?R@sW+kj^ylj$uKI5l{t2%B)k6HG{4L;q9q;rf&Gp|pp0(f$G?lUz0r7D3pYsZo zh;A%%?p~?>+niwTQ_C6cr)Or`foKn zX~o{UjC|MgyA=L7qoCHX8g6bQmy-TlM%k-?c_Q$t|CWSP%oxzSJ6;X z7l5B@RrsWlYuDjjMQZh*UhF|2y6H(Mig@Ww+qbGf39`31)Aw6 z-T=ot@UU6MZ?6B`r*|Z&8sL?FXRfPi+|^KPGZ35z7V5tZK)Dzn9KGy9|D8w)zj^() z0VrlMHZcJo^j*MpD)26Ymg+ip)XeqY=}=4G{02rL)PHAiKLglWxQh1QCStFzmA!Zl zt%W8l8Iw@|>7m_O*bcWt|G7?=KBr5daIXKBBW-8!ME!R%DHjrd2T(MSx&e=%laUSe z-$wFWfZx$p{?I83jMc%vwJIUA;wND;@iP5*MFzrA?DL9wStFi9E4{l z0!ag&Sk2HT^xtNnS(}d28SObA&2TbM)-#$D`fms2?4^_wc<25BClK2-q5oWcV-2~f z|1JR5&B()r;Cm{uPvCc3&G21-PEh~t;@rR}jQZ~y#uHA0BNr$AhldVyQvV&Itdjn_ zfRP{d--ST7jnSJE$l)M=3-IYWLO$n_!ydS^jbGO)IRP4y!SwiSaA- z-?h9wfjCEM1CCg^{<{RqPeB4FgW(m7pOy6A^~B1c#$}YXoSM)^8H<2%G_+FxSqtX# zd^xsQ}nd`q>phK-8^xx}|V14p0hR-v=vI`$n^`Cy%FM|%D z|6X3WoOjdkkvo;~s71)rg}m#;$M_B;xC;qY|6PC=S`S`j3#sLM;LgFK{<{(BwEcH4 z82sk--#zHR8-QQ}{+@3s>c88e z_7eMbc;gOF|GgXvJV_2cjBgzQitYGE9)f?j1J6+;TR+CofBMVcP0e(N(Zfmq{T6h3 zJFuw#-pO$`{)VCd-b|hg@Os?Jz6SSFSKf;^_Z`4@hnG^Hp91xF(0|V&i_e2`6BxXo84v2e2UGj+zx7|V|NdM56_Dls zz4f2t2>GAwfcUd|WvPz&8&~CLW7QTML($S^e9s1-#C4qW>+~|k&Ebf2=20m)qLKfZ zPd@VMwW%BzkFp(yux#&R1kmgJ;IhUL(3_iM7zUwqbi*=BIT)`* zAFZn~#vP--j^+iPmXZH?ZTVs`c+l?Ud&jF{Y)!}=zcLS>1l;ECQ?YUsE~pk`mgZ0? z9?poMu^l&XL`%5DM@+(c>-d4R42-l~+5W8zf6&zOg+~lx&*+c}bFwWJ ze%S%5ql?Fq4iyfQeNDdI%uVpSlhAVZSq5T5FgVI9zs4H#SHljUu{RI98t^V)7={* z&&b_X7o?3ND&|lbe)$;VWkPNb+R>F5Pl(ZM<=q&L=*6f-jEZVK(Gst{v2y*=_9wos zOyLR@;iv7WXRJ%4bzNvf{>4s?N;~In$GzOB6qFa=J8t2~p!0uXy$Z*&V(d)bhWtyN zSSiENQn3x0s@-2)i>9_HThp$2;dq22Y0AGg6-Pals*?OWf~QaW;K7yqmHHTSc0F6= z-(9U7193Fc6=fZZlOm3lC@=1A;Yg8V4whKC{^s&O5je+^m!rq-VC)JpqiBD}$~vxR z<5)`2ESG=x!f54fTWNAMQu&{h$`-f5L&(45qV93!Sc~5B%D+2~O(Q=&)}0|9%1o zGN1nUXnIM`Ehv|NM@qX%`X?1CEZUZwnNWoV+`;yO*P4YQE)+{1SUc(}4k z=>OT^)6CP5|9PaS6lSDUU8KzAUpS{zqH9zvg}dYF@46z(VzO{eBS$}`)8lHQOzAYI zs{Aj;)-xAaR)Fs+Qn}Z1Mv2;w8^A^RUq@+LW#`kE4EbN21S8B)`~C*!@{u7iSvzDE~_+ zeG_-bb9BLjj>2{@QvS6kpI8a}L7wOGzX^+6$p32WhRXlOqWrHelmBf={wvSNXobol z|7XC@x%B?m0oD0DbId~dcZHSnC@JLsI4Cm`*yT+(mIH0ZjxS~b2`k|wa?0g@J-pq^v5E3`Qc?pDIA4G8u(v4x7jxc-UFk&NbQK^ix-+q= zIM#6xJKG#=w`;&HVhjRVmZ~^_5Bfo!xN}7LHv0_w~yEZn$`)DF2sX zsW}-d-3C%A7yFa^Z?BX+G7$2=7fCxU$^T19<0!$=MB^Pv{x6{HC7D|EI#e(ZF+zl($2dli=7!>{B8Cw;``bll<>3%Kwc?{$GZzXai7OgNJia{d3NB>%6inEf@Rxfr^PMgm`(C#8QvScu zEC1hM??&bSo51%=ut#GKP35ozE}R=4G;b$$^Q>2&K7ZBA4?CeHTArS+LZq#&a-X(5SFJcgZ9hgREH`Xl_I#^{uzqQw(H}kNAM0)F zQ(Qf0*U;Xe|76&&>=oKa^hx!gl-okEG zzA(Rkv_bCYB>vlT)r+v1bmO3){I^Y5Jv7sc*OPAvZE^jtTe*w+zkv2__0R>S8flZw zhTe0@qZ_z~%m3x1U7z?rlblwkUQQ=HtJ?X$FiG1=TAjgv&l`ZLdgxC4UzqFz?&Y2H zzZ?Fqsh*rRqkfmWp!&8V|Bt6VHkWqVPWlS9hSku2DLssdOr|<3}+i&J?pTTc(9(>}T?PAAq%_Yi+7?vJyZ9hk!!;!o^*phYx)^>fg?eqRp9>cS_ z>NoCTOSqKYHhJ`?V%}|xsFmK^>h^nUJ52bTkysADc}5${G0>b=rS!J8oP%Tw))ky$ zOs)ihqjk1$9YfTP?Kr6I(>w?B6n}Gx8Dx$p=5K{u{I$YsakFnT82*mWIW{&p{*GKa zc3`W-@wxK+1AoVlobxl5wu^IzO6BYC>pt|ZGbOBgbd{%fw&4_Fn9f~R`s3e8iX4C2 zmXpE9*+Y2=j;mR+_&ZMI%&PMIN04F)Es62Gn^VMpVsC0PO0C3l{GAPx=k6X2_GRW4 z@ptX?X7VY$cLjNO5Glt$U+v!9-Q76wUk?6LN$)I|Quw9fq(2c z(T-Kw86vi8@*Ko}Ef%#gv;n5@W-FS%JpUYj?a_1iF1v>N`rgz+*v3&A|6Sm_o^ML< ze{X`e9RD+l_@4+Db`a|%XmMIu{(=8yzVFL{?M&J!eevH-jz^04pTPTlSQ5)?U?-lR zqxr6!g!JY3AMJzx9&BYdQf7|-Q7p_kb(H^o(B)cabP4z$!47>rcGJ@P!2dFGyplut zKU|i30n6?cd=noBvzL&U_}|MHuay2N@ZV4Q?*|H3j6R9$C(7Qx39I)+zOWwx|3?cS z$Hw@YKK$8@zv>Y@lJ&d(7~Y@#@qaV;zq$|pzk}_$od1FU9~ANbH1@=AmX-hiH~u-L zJjZqZga%O&(Z3@<&f$K znn!i|JAb^LZ_6kWN~K>R z*DH`K9pq6h=#8Tfk#Zv>!GHZ1T2o%t_~&kO&QX*9Q^7#~Plg)uUrJO>spyguKQrPr&DeGpI_v^WlnjK{9gpdizvA}@qb>rs*V4) zxaRWxROXgI$(c}bF}N%Q`w`?>Ex7m2RN7SXe--?n&UZZcKc^=C>y5G`@qaGo;C~k_ zK0PvK!q;m2n}q+uI&5kqXuV7Y0{2A^{x1fS>iqA9;*Ridg?n3}g)QM}HYFllm|JPoFws_EB~!g+JYfa0A{;uyzQ6aU|dEZ#->q4{?&^N*ea+mHA1|6SDouO$9IRs;VZ zqsG0T`u`u;!{q;8VV8R+{QpZZ`*(O)E&LzD|Bqyap1X^@_yeetiv}AI^;|aul^!PD zqa5EM?RPoiQ2{U(9i+SQd{4hK!e~r!aZe-1!R!zAt<7 zRige5<-U{iH#q+R$Gf=xLyq@w{Vk67a{b2~@8kM;&VR!37}t+;{vhWUIL_yIDR5zQ z?NKp&oa4t_Us`it+bw#sHl1dL`GyGcPtXiMW)}b0yEr z)3b-q?ucip>{k%~hde8m({nD@9v8%s$|b*)_IA=yzWEh;I9H`H@%~>4sZ|aGJa^)IW_HbL$F+{PiQXsl ze4Mi0M46xF_#D??;QTrcarkY{!gfE;p8>WHbAYe!(({d6Z{r=bNi>j7Z{wXZF5RTr zEu5|I&vU$tYvT0m<$9PQaU0acj{tIDmyKv>Y94wNx95+5;qx4SO43hrUc>SG9LTsP zsh$tic0Dw>0s}N7M%34j1g5gcJs$<;PjUPfc;Cl?lqMQNyF@o=Bdz*8-(8l0mxwh1 zQO*W*2z$QC`|ps)CpmvHa7j45nQL(y>}+$rJk-_I*EcjYHjWsWf8qCl?KxnTuW#f! z=XsH*!d+l|KA|a;HWT@~h%KbJ6d@Fpeh|fcVoO6DPukVZZ z1GA>^RQgClLqlD)@}DLC8#ur*$vSeJ>PGRtOqSsgm9D;DiN^m7&y+Rc@=ylz>k=>O z>gyUB>-(pFl5(G-{10({hV!dAA0Yi}xPC3ymvQ~C9M@9De{%dY*H3VMiu2Q)w{hOi zc?V}{a}P&1Y2V0sbuqoqmU8WT-kE>?K7FS@$8+=la`C-!JxFhP#t{a~Pw<%ja~#AU zkp6no5I=w48~+CKyOBd!iuedm!iTbiC*?1EClZIIaVq}=&ZiX*p4A$VLG=h3r>dKj z3RRfTMjeJDgVH%7{*y7%xPt_6?D-1MzsC9N9Db7*bID@jy?NyC%j4TtGCq0s(7d(n)N?Bb>HFOKtoT0Vm*3~*36uE`lD-^1 z;Srxy2KnWA<@ofbFM~(;5{#BldFg23**K1&LgEK}spHSOl+?UD;Tv8*0%p_`>guhz zb#=`0=f+6DE$IFtLsQLdHK_94t(yKC3(a9XS4j zV;1+eQ12|1+pWHch*3b!he$M;9CGQC&_$SW4=3X5-6*&Hd z>;J{IZSXD*^jp%4=#11hrajU#m&0%1eY~5`^(d~#a;R^SxAYyNEtl@qPvC+pOaYgU z(5D|Jj`)6s<6fS9jk7xBRUBXE{#%@_qkqcrJ?@|4{8G-eCv9gHKF3*o`$f*yagNmH z{0q(><@gcL$O~8cLeF1u{{Jk1v!QtEJ?Bq+Uf(p@M(M=1j$*TX?!1(y{O66p?RVgJ zIX}Sp9h}8m+}_C{Uhn6uo|3-jbB3l#k8+K9#U<^6o_BIq2lyNw^jyuk_E4W1*2Y)Y z6k)dx`Hd|Z`*MVNM(7!bO#B@e|G@RHIB4e=CiAR=!*AW|Irx61cCp{>Hr@;0l{}~2 z;5R(ASJ7dqZ?>Oz=Y{65cqz@a=m!$CVxI;FPS1DvIm>BL!DUB&U63Pm*iDvoSG z2aIW%G-a^7ALrry!0;B%Z{tvY!70JJo9hp7t!@VQoPP;_-eFFR@4S4ygX1;a-^KZM z&ft}3r0j!N&oa&{I9^<+BN<KLPjfuS0q&^{ zu6$n3^|v|xi0kJ$OONUy<1091NIK&_qC85Tk8sXuww-(Q2E*|&v%?;}8bLj1;);%{#qY7Cei#_%}Ht2T9ja4-I`=vV#yUqQx)Ysh)RpDXqXO z(QPi*MY<*0ZRhzRp2;7c_joT&IVYQj_lr0#=O9?VN9xj+Xb>;^{o2+~xI;UPvWcz< z4q;fpGifSZ#e3_)`nxde8HE z(qDSUhHu;v!)LUh$0fGBn;RZ;)`P%Q0DfeKUodzNx7N0LD&e z@0{K>dq9&3xgIm7wY9x{(xl0@ejBppX4~fD$4{8h);4V>-?=fZT0_-nZJNWPH zG_wS5bKS^>`j(b1%&ZHSM;VoWQwmA1C6_-x4I`Qxvic?}%E-nsBl&3_Y5$_Jd34Lj zQ6tARw~TH?6i1JpFsajq%Fy0OI`OUo#*nA|aC>ReTZfIx%B#>P=ZYN2&HAV+950`a2TGiEfdfGX}pw8kcS zL!%+p%C&`+s|&z#^5Me=uik&SYj4-Q1I>}ovSrH;A2@pDzN-%&*>}~U!v~Kozv9SQ zH(r0`SywJUa^q>c&f2*zzu&jxq*ePans;E|-g(FN9e>^htCn5KTAVxgA31XUO~ENJ$P(MSMTG)hi~LTSKlWhM&ho8U9V^^?7!mr8*e&v z^(r{6EI^Xq6 zS3!V>$>Xt8@m+Au0vZ_EV*{;ip__% z%sa68(Bj2Qu3fx!RT8d39yguK2uiURAG#D!kM1i0NYOm(rDL8}!6W9r>y*QNSHAS7 zgGUc-*vHSxbqmU}?7H~cOBbfZMLv|JUs*YQsrVt%18x}z`wtvARxH0%DWd4SOwYB$ zy?A8~d0BdET5VvLk{8O-TRw1?0Tyx91H4<*!ngv0)6}Rl#U?$~Yhe(io@nYV*vQkxDl~>h1`ofHAq&sz}YjIam zX37Bwx>e+NF9lYV&@c2$Uq(pvtBiZ0KZYUj*e6{Ev1tX6?fTtDN(npQ-OJ9b=Q0dE9 zT2_9UKvhiKM<$1ae*g`mR^~EUR&Fgo50J&O^tJLX31L~f6xO*0e#o~QhJ3rR_*V8*YBsIN z;|vbm%0BI?GFro3jJ19q2H=1 z^jlSheye-wr;KR{>6y*(0ghksfN`k8aU2(NTw@QoU(g1sP5w_KzGGIoiDzOqazYcM ztJuYe6b7nYTCy zXkg^rpcIDzt=wF>4^5hU&L#?ZLwQopuCfwpyb9>_N?lq_Fk-M${RD@(xZ6!uGhxSzM$sgnT%aN*wB76M0VFOO%4e>bt#U6-F6bmUf)IG^cy1#H` z8net}40)#XWEt(5hiw`A4y83<(-f9G08_Gi@8PZE1db8h$?;|m?c&(VlYi2WIWx{M z>|lM-T83~X`?li(;(9ap_i#A2P!@WukJzD;&EIi>WC<;c(D#yM4STjGtLaW`%O_$- zJsDb^);Chwoz~Ntg<0537co+yJyi{$ZPZ0w`vrt_$j~qPfZJD92}5RH!^;5$4)Z}3 z@T$HJX;9T9Cm()e-k;u+4j5pmXHJX*2QlkfE2VKF{>XH#=sR!6xvpdRjr|uRe$2sh z%^+uFmEy-9VD5Efdo;Kj4*IXF+zl?{yVEHcY= zCg;eMXZ7@X47pGqTn(X?V2Q4F?_5u1B~}@8Ed=LbRu8Vm<~s7OP9Ws2H1CSn&OuZT zs)v|)=o~)hytz_>GcT2TVXGG8SYQ6jk9bx~dNFr}1yfmLy!T07537~$dJ^L898znS zvrwH6>wZf8c`{gDu5j-9@+-_3o4UHQRP zB%F2U-e4oR8dpOGZAJdOPIvI%*_Xlp$u*>RAIo~Mbv<(Tdv!JM;qgCei?o-2QeJAx z!^RrQ&m~{}I}>!mF$oO?iC;>)g!g@Us*Sm^PtUZA_cor zU-cmWyWp4m*&5$HpF5y^40=~jzkn3M|LO35DJg^ht{6AHdh+zeEs)Z6uggR2{9m8= zzn2xEwlIVA?7~j?ac-IgySY5W3fEV#W=1nSJU#LMoHG7zD%8$@*H%7?8_Cu1|HdN! zPtt{?YH;65_kVVm>S?5$j{LeZzpK&I#{cO^>v)>;b%oh*E$4p+dDO!HRm{EXqI;3^ z|9IAg+n)HptT1peeIPoQ(dsy)$nMl|3AbX@8`4RQKEB|lBMe%jR;{OZq|8eTyeaQ(px}x&`zN)1cC~sS~BJ0Zb7Ea85 zi6gT0e@qtqw?$qpbQVqobL*e0jtBjBu%f&5uU7g$&D`C);Y85?t*k$P47b_Z=>L3S zQP#z**Ao4ITv(AEV<*Pi=--JE;URXod@Jz(fVJu#VyDS30RLOLeykeuy#GR>B@6h! z&5Um)`eJU&^y`oborN{4M9jguJh0dRt%Kd*uD8 zcoJ>(co)}}6=`k%MyowfDTI+n;1|C+9U|{MeGYei_IYi=R(}p@louF8U%)j)O1&Ug z%=Rzh`zCsBk%K*UdmK5;QNFRFXA%8z%P?J(lIL#9piym5mtvWhdD?fh4`4o}RfI}y zSlh$)=q%ZI_E92*Z^Sbo@=bnaODL=oQHD^)mAzKsHJ!aiOEp*H4?p;wE>9UfpWvnM z`iJ0%tNslPQa^BrSl)@7L5y7;$hEYUwFr4G#>!(BU)6B3zu{_0?yP36_93LGD=fPr zl)RD7v3p!l)SijbtXrWWcorP;jXAoSV612;HnDG8tZXEA?4L_<%abFq8hNdK{&KYB zo~eVcVq%V-Em!!xwl%GV$+xc7WS`%sV-f`Rb%jct#n)8~T_@2Mh+1#(DO1ueR$nTIt(I%4?3&`zcO++57q@KJ6m->dSK0QRPmEQcT6p%a#mL^f?L;xN zCvL59U2ySm-DFqE)()Y(yR(l}YT~KZG3&chD@Bw7`~N;4eo!iIMq zmDtdNK8-jL%Qty?E(t#OH;)$@##nJ>YOnk=ULKc=7ZIZNhBi~`g~eymGkVn4y{H*p z$%m*VUK_j%TUb01I_1w)QeDhLON9=Lyn}9*>y^)j8|0f1M4b#+up zUaBolxmCu)24`(^RWD;J$HEX03#~XxKPeHb(#MsxM67dtq~u$#tk+?)vZjcWwjXmf z{_sP8{jUwmdZl)3up6Sf3M{*>yRW4ZoU+vWP-^-pvCKbhYrK6lO=W z)HrfT4I0`s-l*Hvuxd%a-|orkS%}qb!WnH3TP-mz7W=k_4ybL!L5TC<`h&5bNwgH? zrZiECTmjKtTII3(0$RUv{cpW@*UPZjT4P&~bnEAMu#^hw8>J-br~8~*$HhZkp}o=i z`(M@n?g@|~=ehpxAm1s;dZGTG3_ONLo`wFOKuu6fDbw1h+kwmaEM-RlVLQ?-e05wY z`>v~}c5pXU^}joWhW>Bmtkr*FD!Y!_WQrFPoVZawRxqACOZwj(VM}2GmyT1iKn>7F zupZ|j^#3GoOZvaP_;Mr=x-;t(Af8Sc6Zq3&Yf%47o8g9X{of5`7ej;4|6QEtU{jn! z2@U+_`hOPuT0kuKGFAW2qT~+Zj!ax!z^~FY1Bg0+aSrd@!9vSQC+XDxb9g=%>RVpu zf4SSl^V-Jz%5ijG3-`FKC-1)cznf>}`hPxfcTw(2WMKxsOBwYYgT@Q}KZUDS-kM9U z|K0VY9ozm$Mi<g%CS0p=zsfKwqRYC)pxFJYb>>yEfK%Jj+7|#Ih>EH-!FI|F|<#=zq&` zKVfyB`w#mCR?kiZ64yWv{XZE@T>DjR(!hJ)g#LH0qrUpzx~iTMPFoob+`Ipgnn6va zb~3zJ{qJa#-+%X4Zstn;Ka;!J$m?vltNxz>gi5=stGbu+eBw-`Zn|bDlP7uWv*uJ= zr;ytHq1FE#NL@Yetg~u@spP1wSp7eXH_DKs7mX?3gvKy_){=XMyw9fW+2oPy|8-!a z{+|!L1>|=fB`oCG1SEMOhx&ghDcY$WCH=pIH*1l3_5VuJhyGs)lu~#u*p=&l*T$C$ z(f(hbQVaw1V$`{eIu-hiHMnwU0c{{p*8u6#VoV*H)Yv=I{c+GVLVx`~7ii}K^W5V5 zT&phx+iprb4h&2B-_o6`+YOC$RY(CeQ_e( zZQ}WVMgLy{&&%8Y7jqZ-e-l(c1x~B~FM!Lr{=dAi9qBq1-Z^5e{=WbSL;r8%nfsWY zT(}I(<}-;|{eOU1m-46nzlh@!BzF(m^Z+AA9jrTQ{T^QEWW>c4f4dmNT19DBLxqJn z0jmFxCH;R=AN_wObUXsZZiaH_1H&%3)5s`D15ecdXBA#Li2mQlo1N(YGm)Mv7#+JB z_q)TSIv&0q;P1bp|J5ntZ4bgd$?Eux_P_ey9W&gU!TsU2blJ;n1>?~FzE!ik>$$xU z_f^+}qNM-*-q{;6)(qY_s_fS;+7oIyb%y0fUc;llZiyZIP3D~Ie|MqiLShzjsQH{1v?m;hYiQ4;O{#XM2}+iP=;;~CW8R^r=6 za;!J>e+O@d8>0Q6>;L1BA@%=qN;`>MPeDFT0iIQ8q!~!lE}-AV^EPVv8N`{$=;3lC zXlH6`wDN3K(*HYv-x|FhxVJ+A_b{J`M(9MV?IcI{{;EUU%;JsOt)13{df4{h@WNW^ zT*lrNq5robzmB7wg^Y*(zs$uMkkoa+k?a5cNb@O3@>1mgbYwa7{|2P_0CK$+2|pfL zUkRq_|C71eLY&b5d(xL{7rD1W5%vG6NRvIa7pMPs!+kaItIN<<|L?A#|1Tom&J_2x zKoH?dPL6pSZ2uny+PP5saC(xKXh>H#KedPFF#)FR{ zGkN=eE&AyO(yc?2J_f(%LZ7oKZyh>R{eL-sk8un)l-mE*^#8rUe^1i?x5N2&AU$72 zrqutBfZv@g4$@lq9PnQY+^=M@iU!7DA7@s3(m)#)qo6?k<7SpSw$_HQBo zpJK6`SK*m@d(!_O04MeT(~JT?0n~3!?f=IM-=z+Gl6|DVf}g_`c%+8@|2FmHqu_J^ z-v`_OuVhcS;fI0xe;ay12XosbCH=peXG^GsE7293c{7sw>|1??rXy>MfMGJVSKYJ( zt?r(Q<5K@h{ckLF^*U;sycxxLBl0zqoHp<-^naUI_Cv1!FT^Wm z4SN49O23fv9!e|e|21%>lV_JE{eK3~Zbj}-BgJa;&JOC!$w{lI|2M(83Dk>R|L;Z5 zUWDxJOZxwmUj4rt%{SaI9@xetZ8;S!SuvYd z|94UQ9;OE0j1JvF3*-%D`u{fS#+59Ab*NYW>+cZy|CN9o`u{2n5$oBuI(^G#w3dHv%KXTejS+4*8i8s0a{~fOX9c;_>|Dz@)WSKiOwP&{f zpM-nwCGSEi-Ki8GXW6{rxBok`2`r~}LUt7ksHy+=WhMRpOQ`gGQUCuZ{xzZh7iOdI zxY?dPPwo7DmR3^#|C$}+KZeZw75ej^kn73W-c0@fMQY|BrxwN9!o2JTJX>=8|0i%b z^#7RbQ%u5X&04d^_)Ulo<3|lXIek&jL$~jvKGwnE!Ss(lO@~u!;Aql6Cm_vz_0LVT zsMjKIx1fJcO8V!_A@$F#U@#M1ddqJ}|GbO(a}|1iKC(H1?~3~8h6?)UE%?3Nikx4H zOuq(wqW<}8(m(en{quC;14;iJ;=BGJdxhS}H%9$)3pKx_e-3dU`sWa}|M3^0f1Y81 z$0v|H?GG2j)93k$eUdNJh%EHak6EPK_Gfo?1PNG^O)jj-)ISTdhYKI!FWR5~gBFwe z=eR7_KjX5{KOaU(F9h zHY>X*E6LA>?4H7e%2R|JIl$ev?w;$vyP zagx!RP1D~|J9juzt>MGr5tz|?)qOsVy#e{jssKgWgr zi}6kK(BHxFudrxq6YyQk0Ma6DT=UZpU@UNG^=;{&J$H+I%!re~aL2NUK~h ztz`tyBd2`yR?7KgF!_)1FvkxZKb8ObhRAJmDwltKMU3U2&-E!7%@Oi142~=G5BkV! zlX7;UGUD0M37;yno()QwBdGyT$f0~Kg@JkdPRa4NJ(bTAeB>SSuT|GsGg8`-4y~&( zvaS3(I_U_mV-oITru;kVIWRb`TatgRYo-eMw^Zd?`PY{32?+|`oy~AZn-gzZ0^!2Mm+}l7f4}qiV=UY6XIO{ zV;nt~f9aIVe{k6vE6*Z^o(BDcIjK3qKgznO#D~|EX&rsH?uQ06S8Hm>zuLkSA^%!r z2j=ficS?_tc`Y=KkjqzPOMRmpil<{-F5>Q;<21ryTF1?NGMM~3nr$v}-+lI+jXH(D z2A(^5-%46JY}p+tRy(;W|N6Xia=4S=gj9w;F#SVFMacg&+GWcBbaDv!cN{xLC!8k~ z@~;f$W6mM}A(dl@F)%3qj(aTz!x^+}wGcP)#Qlg_Xo08tvFI!BSdX)D9ih_V-T|FD zXopQ92kpZ%D#*V(&XweUF?}P)XqA6Qhm0k^k!SW(F`0Vu*el5#ngc)9#*Y40DLmFf7O(y4}1LdS94PF!UuPJD!dI$p@caGtKV1u&<$_gxl-BeCa!J!spRXpsPeB?Q2yoi7^vY`o_Ef= z8$rx@#Ggh?<=+w2{=pG!Jtmsy^LKFAqh7~f1J5U76>5cRUHoZFUz1`f|1-&d8NCkW zU;luRf5*-HhjHW;HF#xVJFqDK#~0;)8NHHR{+E%*D(;pOza;uN2 zm(#P%=xJ$fo(`PK|M8^R%hO%-HBUsoc5-(zcd`?Hn{w+q1Ssc zx#aDi#f(>-Rh0kppmTZMIYaJr z=zKiKQDPnj&XE6eu$XRv_h<9eCnK>GssEP~SNT5|`i`Y%+D!QaC#Wsnj{3@YS;jr@GM*jNIsHglkD_?zssoJQe8FHfh&q{JxlK&}` zGz+Um6D2PoPRRdUVuk$A=DnUIA^*x^-_XtIiSoal{?nPrr?U`uA|oOH3!t2y7OS~m z0N+FYR}*&z(zH0q|CYq*g-QMw_RXBTJ;?b6_|`;k^DOe;KrTo4Yru}H{O=~03;4Sl zI1dBGA-J>+>YPV!conJ7z@}4=*A628=VLhz`M;Iamr!C0Rx$Pe9%_)|7*{5k zUP_Pev-IJQ(uY2b4dCTi)E}h3e=T;scd_r{cafS8lkfL| z{B@LhJh;6L``jI1@cURUUl>IG)o6|Icngxg5lPtqkLLpaDB^BR^1qV07xJ&i(ne%S z`QHXjM?gvES}Olt{4GxMl~~jJqx|ne{#T+Ul>a?Q#W*B1^#5^4#zvl9K)LR8AM$@9 z5Uj!y)=pV_d4GPA|IL&;xcu+OZnd2eiZj9VUhKyA7hYSG|68EMQfw=)MhX{Tr#b>$ z$H?`KT-}LvQT_i0;JX`)n~~vLd*RM6_CVnca7Ow6T$2CykyiPCo?IVF^8ZyvJxu!p zp!gov)@_vfWo#0w3ZE~^|8u1OIDEP-&$jpcGi+Dy!17CbC)-n^ zXSw|U3M=k?@TfUc{@ysNes1cOpUac{T-HB(@=$*6WF+a6TwROx>$kD zxCi+;hQ0CqaC#M1uXeEdFeQGxC_nov$WO*%S=$Rsvoi~`vSrx)?q>n6k3rR^3mw_= zO!=9UKmTvrOyLcDvuWaFX-_;tX(HFf*^e! z=%vs1pwBO<-`20+!G^pX`I0^l!rl7|e~BLXT{n&C7dB?t0DwjMe3QAH&lL6o^CN5} z@`q^PhmjELS4Vb1)|Bne{s!o0WmjQw`^Un$*>?(OXE*ZxWm!GCWiyofMZetp-illt z(VvdruojfAP2=4FQuNKN_s%|$vFp;4{4VdUo0o5V9`B46Pf~&^Ke+`*JA$E}Bez+l z2Rsi*{k10(u;fo8PUTc&C>`{Ai_+rmlG+#qFQiC()u5HaBTvuSV;P5I7e^drywt z5Sgb}C0SDv#oGRu*EtQmk0;R+GFJYsTJFk4*cBpgWn3u?j+$@COISW~8<;TV{200f zbJI5HVH*2*%7!)vL(s-^P)|;an-r@h$hTbnwOeUjQvQ{YT>kAj%6CWFucKbLhLZeu06`~Z+83-I#?$@^`Ja*~ zZtCfjmCL`m=o#5cp346u-aAt$@3T}ZAuO{}U8+Q_l*`(dwP_i=SEiH$sbVbkUM<18 zD7B+*NgE|LX2)tz5Bb+prZrLtQ@U!G|1r>c6gY?cYkAO$>&zEz6J^)^%!*4Mi-^G)2?;4RV_iw*qoGd9R1LRK(+uHOocMa|17AWU!~qO%D*La zgHaby)dv4U(uDl$z1>EeHsoKs#B|y|tsL4D`^x`nXsT7KdKgdZT>0-NkC|XnF8>RF zQ=7>g`V#gf=l79+dp^}eXg59b9i@p80BJrF_%kSE&=#irt8uiI8Ebg*?^;#r1MNh) z{OkYUPR_0>ro_80kMi%V8-4zBeUw0`_@n&0W}sG2DN!!}+U1<{($3i#d)hW!2g%i^ zh9mzoC_^v*wLqu*uK-@xqMAs5G30+C5a{8&8VOrQ%XTbpYm=Xn{4WK<38@9IwPsq9 zN$0<)|L4N#kpEr4u`$X2_KGwqe=&ldQ7-?d1KlS2(6dkpu3UN0v-_| z|EJNfs}25K{!gHfdpfXPk>r03y}GgFn#=zgNN2Qv)?%qTk=|sj@_#yggdM%|zc0!E zh2&6A&*1=6IYQ5VUy}c0l)W2lCV=5tlv11gPXiLas>;7|;@3)_XTM(=SB9DCiC;K% zXA_)O{=+7gA`J1P{-2Iag#0fewPQGXDC_^c6!~Ak)eN34=g8&X_1&fqk!$Id@_z!{ zI)R)ESbsL75tbu0qu}rsu1|&ATRE5H|1|7DdQGh^WirIocq|mk|3y%AEj|BjlyeQV z?|{P-;ehggCOxb9#8dwFgX`7sXEEHbB`E*KoB}P%<^KS^#cpWxiX{JsDf1%w?geC3 z`M;7fx7U(A&^=8a>h-IU&xQ1^pGfk5FBX$=^ibC$LGSD*{}+Sn8F&WO65fn`PyPR7 zQU1Tq-BEJ<27aP@@K9^zxD&6GcfrwXh!^tzEqGm<{#X8=!>-Z|o>ENp6b~QZQkmO$vsgnF(nB;#SQo5P)Cs5x{fm)~6LVn`q@_zxf{!~1H?i@t^ z?@aQ42x;wrw+|rySJVi<@_%np{vSn_p2h-n4Zgwm;9I1>vhx2~IPx}ZN6P;nW0SZV z-qb4pAHah1BQX6ScC`$f%yV2nNKU^l{0DZOPq1a@15jQ0|3%^Nc()7d%GdCf8m|0* z2&n!8>)np*lI$Ce+iWAf}17zxx6SpXJCPw z$-6FWJt05Wg2}01qWm1Jk^ZBIc{xkd@)TC|3D`NWr{oK%gIBg^OUUW-E9i4}_8j)Ny26%hLMDBlFPxrT zkKg-+`2Ee!UX`sXT%1XtD>Ca>OIAz%VdpYxT$v{BN~!&VhP^MAYz!4ZNacz8A}^SSd8r9*cj>_2lfZ9RCj9xZ1Phye0e{F|<|Yscn$KP7p7yqSbqV;?;0{E@CX@Sk56F;S~^c*Xv;{SZW<9;cxHQ8F-GS zX3%v6SFST+2>k7DHUmZAKb5E5>8+#fYq)b{wGJ5Pkh?8?JuGIW7)yc8IdKKF=1#8W z)B0&lsmt--gkJ3+#`)lX2HNqIUi|l<)ei98760Sm#nt4r5en??<-hnJ>&5>f%HIP1 zTbM&+DBDn&$2%FuL1H^{GEZ0TL}N1k7?V^ApV=d z|2*(N3;a(^_@6_(3)B0Xi}>&6yZ(CcKf)N;nf>s;leUrg|2ALem(dd1%NO7!Mfrag zjeUS`a|f+J@&6XzpZCzV++7^2ssq>GP58f-@t_Qy`F2`Vk8+goUjj6)4C4%7@!t$} zR`=q+f+xZM6QSbDG-q`gZSLUz*_8PjzFez-|6yPk|CfOO%VA}2% zue@Poww}?d$-p}yo64xo|IIuC@xQMq|KCUc@8qlgZ;a9H$o6I3+57o6?IrH#QhL1# z4pZt5{0FX1@Sg!CZUf_-f5Lwi_f1ev_&)`1_cHQ#ETtFzxtZ|K&W^)Z`D=_&jm{P` z1Az_V3Ew3DUy}b9$p2@wd#1tVSKuq1=l?}&UwQt&O8K9W<@x8|iTJ*xEa5`=T>_)x zPiW*k7xjZ_^H93VpY%V+S4DlMy~*?*q2pu3p?`|L_hCOQ*~--}rdCI)H>(AEZGM6B zZ<<^8~&DO zY<!Bb@Om6NeehrVTC{0Qt#@hgzq*aKod4lL=J(UDyB=x7 z;r}>vq`qnPk%Ip%#WuiD80gVv`(iTsDEO~_x6L8{tJ{#Im@;VF$+4nnUxbHxEf#jy ziVXfsb!9$yVJijyfuTT8?{fazHfkZSSh-Fsq*l-B{I^XL{C6EB+a``ijE9DjA?ts28<6u;jOD!j(WKV89sHk+R<532+S@vDKIkgww}S7X z{GSgcyKCaV>pcYjwPbaXW-7mHIEKUjSO-r|+P)e~T2~~9+A$RU{PyaltLAczl{U^= z_T^t~{CE9>deY40XaH*0b(xyd&mo6u!Bt4KhGfvKov&vj+*_Uazm{CJ&JP{>^8Yy6 z7E8%tOXB}rS}fJV3@idC6KO}0|L0KZaRogs<-c!+4mtlfC;qR6|ND#l--1We2}395 ztv-3d|MO^P9i;U$o>u53@c$C%d2ZG8t`4QQ<}_kER%u^G{!iymO;jz|)*p}5XHab% zd~gPI&i`5T1*(OWlq3JwCjKv@oploQn@U@HJ#EUB)soZF&G~$O$WpM|8^-|A$h*hTnt1^-_IRa~E-I{#mat?^`R7Z2k1cO}-4C!qV=Xu}?c|92$6 ztD!;2`TqzWHu|Kkpxqhu|9$ZP$)OYT_A6LQg8zRA|NlJk|69xx4*q|$YWnqPnMtW# zx-{{BO)vj#L09Mhd9*i=FYwF{{GXQLnU?Lzs%5aAUO~|Ry5zNZQyKlwMy{%b^RUDP{qF#ayNdL`9;vR4{0spVzp8DewJ{fVLR*SA3*hrYq~Sm5uTJ>f}F9>bYg;_ukAZLNX$YY%JT z3*cz+VEEhLv8Rw*`^s~d{`y|n`qTz#uc~jbjbc05`C8)N9|Qg1U2ie)ch$$f!LNlq z9$VYuANQp=3sU<<{s;d3HK_RO6}%+%_2&$NzwMaCXi@Q>MLV#6DB-U?vVRLZR@b%l zCH@mD;6D@mXP|jU4){XP;(Jifch^}*bwD|*U-9d>*MEBoUtaO|zC4_R)}F*yYz6o` z7P_naCD*%(_+QS~@*wu6{`}v{H@qF4BL4Wx4#2+^=v@6z{@XtaD_p4%SLCrJ-(Be9 zZ{mRWt~t4iHiolC#Q&61(sVV8(Y$(KxP%-wfqz)RN|D4@d(IUJ|MLdm|3t$7o+AFQ z8-V{4;QwmIO>+EiDrKFnK1SJZEc^vlo;UMtf5!m)R}}G|4;Plgr-AsNO{+2RKZ`F) zfBf#|8*wN2--9LZI@*U1_A5W|{~rF>f&bU~y%+y~@5TS81Mt5jlm8nS={M(_P_Q>z^t9V|D9nT|f{w_~b$}vwJZ}PnRpCcFJ zmO?2Hul(x8*%lYUeDGe#aezB3W01XbxOhs-B^gWsyKBltbd zzg&JHqFhsIH_!qU`5Vu}U>swHCCRgKeHK?f5F=`qG(`zO3;T4bMSS7*8KKu?r9C81D>wptDqkHd=>5 z7v+ja%z{>yq^Oh@>;7Lk9`}Zzp4Q*swRy!Tml#V~SBKQj=p0C4*XAPh%AIW);SCS$ z;HNo?mocQZ80b+f#4)lbzEVHhM^Za57)Za+1>#^np%IKFh93TgtO$*9#Mo#4g{(=3 z{P1b$frwYCJ*F|Y{9G!-=N|cQx-9-E`SD&kiQMFZaL6CuZV2ms0lIys))>CblQI;}mur(j{ z)X)>=7WP)_Pf)vD|M@gH8yt;%l#WXDvkhr)M4qTwlp4oFy|zvZwWF<$^9L1dVOtAb zx!O7$WB$?ak-pkvltXKNOA#9PmT*+U9D)a8;ab|(sG;oNpZ@#SVgF+6B=*)- zPn7FF=hK$-pX*+`ertI4m+QYVlqluJGS@>nXM>8o?hV$?T>nWAYw9@CsV`i+AlH9U zTctzHP?l4A;5vUj^q;G6$DDVi#TqOPedg$dG26LwRdDB`#JIL2;nC-*#9uAbef6LI z+oAv5$v5<0%n@+butAUN(0|?wZ{X8Xv%57SQ{bQLluNae{&UTTDPXO4@>JfsV~DFLjN_@2@9wM}+=u>~#B;x^ddK@Fd>!=A zaMjq7{&SUVrOMSK+)cf@{tJ&4b(b2%S`ml8@g-NHqeh0F3EiV?JHnD5*666Yp+9^s z?|f!$3oQ_NtHVO0hX%`~u$+v-Vfv`MCH*Idluh56n=zEC{OcQhH%Gq^>K&!nF&o<$ z_JXbN+9*Qb_-&7`U*r{aR=r>zmFbs{BG^|f>A%n!;p3v$X{_Ghy4tSA;8=gI|Exg) zi!^dnB31-(rh*#C@0$Fu9N|^+tXV?j-WS#n{c$SQkEy&-|LFy9EerkUObdPGV;vYZ zg8PQ(7w^m(tp~aOQ?eZS(DP?3aV8?6)~}cq;(o>M;USF5t2sz*R~Da$M7l$V@Jazg z{HDv|k8=)`9=-DQZi)7vHMBmZRS!6Rr1oReWqO&7(|f zdpq$BCH=QD-D`Ow5INXcAMxC)HxUN7aYk-UVM)e9@q&pD1txH4;9jBldz;$l5wte#g)1AE3!U1UhS?!wx~^Ih~IQs{Fw#kTz4qff0N;ZGULt~1-N6H`CPkKjJs5X z{?qnma0Za_?#>%+)C~3C+!V*LYW1J~a*m(P;;w^|gt;Nr7}ucD3Z}iz*<6N!@U5qA zb(6XkiEs~``P|J!%I09-D(Sza;JK8yuJ0kNt&}hmE6{A}%6uSP%v1N~UW&x2|Ma69 zMGm?CTRC z6XUkivD(!EzdnT9fN)8oajyS1l9M%iF8sFr=bderzWUG9S*no>$wmD)w<3Hq@V{CG zuI{*F&2x{3d0gv5U($c8iKYHK1B+JZzf(xHm7FtD%)smJRAO{9W5NBJ)qiWrLH&0& z&*m}0xBy7he`oUSR4C_uJ^xkxcN%#`JD{5WJDYfpN9X$QeC|v7?_8{<23OiI6t)AO zHL#@rb^vRo;Ho7jK(m)HT9@m;LrMP~BnS7MXyVOc=x_-mtUHSO?{ci98+ejo!Lo{iTXZG)^Q-Obwa|ag zo7G#l4cMk}v;nhomE4y`d$KD&S!-e^9c656il^^vv^PWl>4B>Lv$df9(;6T9bB!RT zUKHa*oE?`tM|Fp}VKJ4pk$yKG%OMDQQ81PW`u)oYumR z(0_}Na`m77EbFODCy_@zd8q%Kzq6h@cY#{W-3&&Iw}NS3{dYQeZlxxj3CGocyDIYc zdSdRw%CG*rnEH4bkf{GIMkj5D4yOS1F5apCPN6ipv5(l7B2VhSYe;cCkhJsUL?q7r zO-?WBzpIeR6XE;m$l7$qGS4H2^T^#5q^?0yuP47fPRn)SVCjECAGb=7n`tL!;)o+IyGpVK5<2n2&@Lq_A z>rS5bK;6)P*OKpJq&<-pS59Z1$_J3XhZ&i;6byE79))l49^g5dG(oO79#C;Pr z`*x^*E71BizO^EJw*OuObxQ5O+rZM=;cDeK@N3&S^q(ub7)tHG2e@-ZrO+|2@g`#~H!6g>$a|Ty6ed?gtNdL$6PR-T%OgSN(T8BQrmOcCW>k;{j%vox{6d z!vD~J&q0?b$p3QUg#P(hPo-`z?7J;scqcYy6z$tl-=k3i4ALI1q~FP>nQ zN`X0S->*nNzov_jn~_j_Ioz2I1RIn7b3cJLB&m@nCH=QK)oS-baCE8($yQHJBCah9 z*P>gB#tZ#7tEm5GL2-S4*22v>#B4z?yVuNSXs`bBd1$`)EvKZrwzNPc&-&lH$B_EZ zdbI?qolD-^fl>W;JdmsZPK9=^O}8EB)qmSk`)?g|a&3NGwB>8M`wEcGg9i#qxBem*Xg)ZQ`X$bxI z7sUG(K1b@mZzTQq05pFz>Aw#p{r58JiTdv$W`8NicP0JzO=$fNq~QhTQ9Z-Fuh4(r zVTPpo?|yhZiWREVe`<)!Ddh{SS#=7>%;YI`4eJU0MX&yQxFY?&jkMRX4$_yY6OS<_ z`YBTV06p>?A4B!u_Y3c4HeTqzuP6QYb-aGQgilYo{(CQQ_SJuXjgQt((0})#Zwjnd zv=5kH0Ph#@=W=G2`tPeybtKon7()Ne&rWAo0QKLGkdM%R-+{ZQFb7~+Hkr9>W3pWT zjbd)VKjB@Y{`*%X>Tltp`fq;r&&(bB5A@%K`1hZYMmE<1(~Rs{W{hRoD_PlT1=zkC z>X!81GS)!96?zP<|6Wf0y_R?4dnkZI285w^?1|01KsudRDUmL-sZdE_jS~$ZSZM4UUzo@;iIYk zz7@Ex#Cxg@+}}$raqqDkq2FO-`Sq#(zK&>sn@jT7SE_Tg1BZQ?sbQ zOS7oIpGft$9%(ooZN4=7X<=K|1$=ElPzk<&?d9*^C;t8w)P5HJzN-&^-$woYA^d%H z;_pw8!k^$<_)PKw_(9_DXA^(_Iq~;iYSkB^?T_%_noOPl5muoHc%Nb0$a4O6 zXWQ_k8(%mtyMuB6gW30>>$%WX{{9L4y#gw($o?_$cS-h9^7)6txa^edDCKsu=A8UJ zm{p=5{l>8&XvRoIS4aHn15#ROY9Ve9v*wxB&S zM&z`jYCm=?D5zCi4vu9DulDW{T#roGwWYNc6;S8nPhrp2UQ=rj;~3M`Y8Nwbf~vLV zkjD!@0O6^fe%kM2#LF=;bBIyAJkM%p?RJjB$^}QkgZ{PSZ(1#7+NNTjtrXC5R$FlF zS}VGvd@;f<|Arc`?w_w5bdr)OS9lTBn@-Eev5r=*+-JDf&_+8;8~6zN0y+O3 z4XHIOqmMs^)=lt#KDkV#A2YAk9qM= z>!+2T!dg{blI~i#jJ8;<;WBz4^8Z@;6fchdJ@Ef7THE_+u?GKN|6k(& zgYcg=X^kQH|9V>8k71X(C(Uku%P{$WHNAN2f6o684uk(+r?2}s{69ud>2~_qpNE^D z=C{_ck~Y5lzdzOg%jn^4Wfpnu{QqK+|6ijgCI3G*O#c6{@Z%!?zYq7`iOoy>uidS- zu&(fbHves@mwGPIe+kOvPa}rU@_tR8#&iD^rDu8Uh*8QVB^t($DQ%CLpMQDp!k$v8 zwEWtPBbHaWAF@xpGj;yV_jzu4>NrQPzONqa@#H-(q4YjVutgp|fl*Gx3rym=9QsIW z56IL3S3nzi+CwVkZS3D{$YB*1%drg`&%);}#+w4SxYlDNkDKFTUn;0kJ9N=&v^-0+ zG<#3sQxp&cRZ2Mrf1~X1vkd;)d$9Kz&&Fbj)N%H^Q3_xc|CXL&xaHP~a;1Is>a^knr?%klK7eF6K} z#)~*Yn?sUg7Afp~8Z-Lv{tC6v@)E)a&Zo5nOBE~oS7I!0?BNDX;%^yZVX4Lzd*gVo zm!s(-O~f^|Jse|44Y&6ex#+DVHHO3CTJaEaeQ{%6m>x!!AN_CNg!jBO_L(?~hjMM(%UKOs6GecspnM4wi--$gjkD;IO)+CU#hSu$X$cDYE{)EG;r1G z5Le-OReSw#HGM~B%u`=Z`@*^Y6Jk9ALf05i|1RN@L*Xx`{)?I^jY9uvhfqGX1G%c4 zoRJE8Ybk@quQh}}vR>#RarTW{$u*=fyysoDL=QK8J)KvoA6)3a@LdmYZE3EJ%Q>ZW z=~sJItU0UAM=fg2*DLKeum3Dn`O%M5Z)^R^LjUO(7uF~JwZ+qUqwbxiXPx^XsuR4D zb`v@4qgQLtw^|u@^}Fz&)f-#iPrYcRX?uc0xsy7f|LlLX@lJ`G$W=-I317ZKov^qM zqu#kf?aJq|XP|Yi)}YU18)?;lT0-5=%(aL^|9KVq&mH}=c1$2v`1d-;R^1~W*5q>i zXC9+~CVb)DqtG?4U6;qFwfC>alY>}xQgZBtXRTEKxu=|me(p-6o;zBQq_}$-Mw>~W zAM46^Vwk1{2qt6S3e6WQ$7{cIr|?dGopIoGtwH_gjs~Is+$&S>CH=2*{Wl3%VlIR> z!dCotv{~xy-wL$KhThhp|Kz26ptrr>XpjnYNxx&Cvmx;3+0|2YG?6D)&Tx&E6;3C8Ro zw^~C3cAZ&35&F-4xMuLA3r@JRWl8^a5Nj+?W`oJhKKf5M+Ebcb|4HrHa6TW74jP6v~j^{HAOpl{|Ew zi~CX5lani4F65l+zv)1!znuDSJ~`AHgs7Vm79mr561qy}Bq-5NIn#kvPjmI3Uiq$; z?!J^QKsg`0)PHlJ(E?&L5>x%>J^-V6whVbx(=De?Sfi|I`YbO?PixnIi?LAW`fmZy z*}e$XolgUN>H-{9% z(SKc}SVp;eF3BO+s$793Zyc1E19bB!%T?#y$8#n1CiI{Fd|kv<|INZb!PUQ7h`*G- z1>CRWo&Kb`{#(bh7JPxGQr03M9*+KVUV#$Pjb+Z=E7gCS6U?35FM?td$h{5dlz!K7 zT~1lE;a#r(mV%F-(AHD^s>cv-1{_uYt%fJ9*jty8?|Och!XIZ8)EZX9&28jT(tpb+ zdlfKG1YY&ual#wQkG4WGq`LazUIfw}t6wT`y@KkU5+m=#s_?p>kjKHW4;)8uH8Gc-BFA!h_6 z8#qWt#1;@yQI1(r5!5lF9usCnMMX@I%QT_S&gd?b^FeEtDDG6VFDCH^3V<-SIcFfArH^4N}>tE53Ke@2WCv50usb zq+k?sLHpMisqBb%aQK#;v45kW;eX!#^+hV0V{W1d@1T!By2c~DT~L;^b@Zqi*}sV> zExwzdjadlVzezZ5hP2hdp6UPfN9aCPtzNu2)C*B6o#{Nx3 zuBy6>K}>BC^Bi0Y6A)7#QalPVjYO$TL|Ug|ekBLBHV$VGMb2se=m~WO^wa+F{rp)d zk3MK$#{TuimcA7SBE)cvh{ut?$o`GP8)7^=u&T*J+gOM?8-oNP&-5Lm)|NGi84M2x@iCSc4yU=rntf)`*#dxH>yF_*uOa1 zkFkG~kOE`><{{0~@LPl$sHZafw-oP+(f+YE2O<|^aP7}QUTFW068pCr^H;Qg%RomW z%!;Zd4xu9ZcL++p5n5n<`dE~M zv46)q39u%3M{YdkqdK5H%?4|TcZ^R)3l7jiY5!*7Ewm)wDr=9cd*EZx%}0^n zGW&P=AGCklQ6g>7_Sz!vUxoJXZlrl9ti)ZoN^it<*bC)xGfM66m<^tW_gIbn+k}$# z&>r6_wSRxZ`?K%C{#}Xhv`6;u6y%Ba?>yv!_U|Et`MApEcQ@KD`+xj>LYe*h2CeBr zw3KskJ$#M0PR6_Bw10PChTGV`&+#5F?cepK_K#oQ`Uv*#W2E|Z*uVSH7GFV*W5~f) z{NjQ3?{ew?{b~P9|L;%x=b$bBpKbp*j}ZN1KfwIs<>ksX#=mCI-ZE6x7S5q?q>bUZ z<-#*&-)y6Off6=Khmm6(6)l|6i2gC2Xy%psl;XU&(am`X>gKVT0pxzPVz-KmNj+oZ z90nJrlCvAsSvG%cQoyuvPNAa3%=Iz`hAS%{j;@+HZZrGK**ud^>WKbvpZb}LeJ>pM zBIkUSnOkGZIe*1Cc*dlgvGXi*#aTF0YG%%oF;uifWzQ{V205b6xT%qIoSezwY>kE=Gi+BlZ|M`i>Wn)3#n z(PFxoALhi2-g5qcWodH6kt_CpD^9;DQ|f1Wm;>W8+O!JB#J-eyFWaP*vx^*W=lluF z-OSTsXP-+JdPC8yHdDxjWx+3Uab%ubu6&kY+BrMQnK`bU)i5Phaes~_&$km8E7QvS zur4_I&KAY?LeJEutT;-{v187+u|C)ym>E1L&X`jsD09VqlweR z&aW=8Y&fIB7%EOb>(R`YG39)M=In}@PcXCDZ0`)g89g&=VP-`+dcu)-jyG0(eR1rM z`Q?`>_=O7do;GJa&3B17y3W*^_Rrk0Mp<_J?Y22)ZB(?dy^wR>f-{5s{g3%x1?RHN z+!^cEw11Y4`BDaFOPO2KrmFtFI7c)&7RBB)zj?v=2+pLj{c}u(vz}~KW$m9cczmaQ z-wVIo&sJ~docTRlwtsrH;v5KPBl$&H&c(4rI9I~RT;w13W~RM!5PDvpzJ-jZL}$&=?)e#4k&__ja4QN{Mp-@($C7r*hr zmQ{KC=QjeHAf|eVi(@17tIYP_7-#C^A3YoK9dnNJ)29XJu-Te88_D)xPjoYH`(8}@ z=e#I=Tyd_2Z_Bg&)8kkZ#K$+*`3rF~|6GK9)=OPzYlgUa%o)3imWD_Vzpv90apq&B z&$Rz$s0CA({PqdwF<3(U5)b`>1xN#btI8QiwtxPrxax~({{d3g7O`-&t2+Aj{3b{( zJS{Xu+-(1Bv5ioQoITxt`{$Pq=)0o@BwFE#nl;!_+CRSv(gx4p)$x?X-xk>IpEIRx zA;Y<`8j!DOVJ-ud2EA9Y{d1HdhUXT3r-|Q&X%Bt$;oA)P;Fnd5{cnN%MMXVh*jJn!<0EFBRAziGtTkEVFyia{sKsb!_@zaz$aS|KgP z$ZvN@(buvIjT}GDMqb$ddqW#XW!vCc(zO4M(k|LV=l<+JzhlxLG1o)PZ2zrs)EavF z;rYBi;$r(RMoh&RJ8FP&7qE&} z_Wn2;iZwtTG;rd`5!*ks2=NDFHK$B_zgHbZokapHhTZ|lV%$PGR6)pS~Kl57~ zaSq0KkZJ#iK%yQ-H`xCBW0bHSVv5>-AJpwsto@;XI5cG=1^m7KzL%+C`#%`lei&C8 zg>>>OKpfFM0HZ3L>sW|!ww4&X?TNgZ_CH11|5W5;3<$rgRng)h)$^tO^Vc17Fv1bF z|GA~@e++7IMcDoi!${3ojMDXm6x+o-Y5(zxqDLDr?SCp-+5~C;Yaqi}f)Xj?VbcC* zL3dZw4Sk~UDH4c+_5Xq-PZ*PeQqjMve8u_>^h?>(E|Hr2S6~ z+y6>w|Hopis4r5n1Y=}zj0;VxF#Ys5-2^E=A1Pdmv7DLvZ2t=}LNplP?PmL5fLOa> zq?ql0p0xkdk*BIJ^N`ydq$?Y9Ol1Ghm-c@~h0!m8 z%)uy^>S%#yNc-Q2_J0S?ZN}Iy+yCt-=WVL}^A|VuG2XQv<4QMRRBfi@y|L;P}H-EPO|D)SKM<4jlJa3k5xmT5i;mn8;W8lANl!tqjFMP5z`lIn7 zj$-j_RivZ%%{Y;Hhu`FZPrZz(vW4Nw($6uYDE)j6t$gA50N->pPx592j^j7x*}igl zj<7KQCLJ6V&aoc`w^MfwBL^CvHAX^69MVB}o0|onMZ%FgEkfU*-DEI3YDs zAK!Fkia6F*@iVO*D@SpdYCgv>71V3SzWC%@`C>-DI6}ks(M|cA?``v);>s6}YjC`Q z?@yZXD?SzS8IflyU)ajoL!dU+9b+J~`iyWc~B~;mQ|N|9rQb z>1N-SqaqyT;B#D67p9fF<*x z4}7OJs(<#ZD_>0g*AMHTZ_jd!g5OoHTK%)U=;fxdNOI)Hcmn17vQ?{petFx}KRt=^ z9a%n0G{)Jg)L#xln)>Jav#fvqil6o0Y(Gy;W#z*9=dbSh6#~9P$M-V%b{l_9UvaOh zOy2C7`sed<6O;h!pW_Q{ejjWf$1SD)`Q*yC2=gFU6D7#{XP>b0B@a*We3P#e`r>^5 zx)4X^`frE+ZRJaVlFC7!tOd%u72;@%bpO%%?+V#IQvU}arXKQ?(-2QqRj>c{(%QPA z*J2sZ6Gm;sG)P80;@F#11@Qw>OT~D;8D`c0aGc{aWL4hsVEyy0r$g{;XzG75>VR*= z%&Kzz50Ltwgk1CMlTDmB+TUQ52EQ#=*)kTbba7b!{c+7K#akFF(DJ9C=RLAAVQ?3g zb_UwY7?c3(eR@)i6c6hE{-1)(X?WH-qRRDuKfbcI7|&z8{`uX2rFbfO7jFeU3g31zuxriqvxe41hU>vLD9u@fV49`WdI`V{r~NDyuSi_O|#NB=%tW1t&8nSC#_K*0G1n zIYf?Qa~_oa(Q2the|S^0hb8$u$=Kl_&T zkstngDAK@rHEL%5IZwo2R@w3UkZ6RSL@ltEVg75EN+TlaCEEGtuVJFt>7#+qGOfb= z^V{iph^LJ63-a_JV&^~l+C5{ZcVm95$n#e&W%7kM(_8Y-uhrK__?D^#n*1A& z6Lm4F%wLGGUlYZ^{P)6$T0Z&!jX(y$^4sx8`R90aOWc?F4fj5!(oA6;tQF^f1oGPl z_Y_nAQzf-_{wIa`AB9>NhEStX789)aP5uYq{@xX7I}rU8o&Pb2aYdN_k>GPNl4xIn z4e{n@b=+4*qxD7kFH!lQg0Zrd&>7{w1S8B*>9GCJMY$|P86ATBufRC;Q5ZKZ<0k)y zA;$Sw+5VSXu{#*qJskJMn~<|35Et{m5qG>Y`EAJmJm}wwRPc+@qp^RR#m~p6cWvBZ zwMB|7PU>RF(fLF!pTMzsdjeVg4V&c;X9| z{{OG@AC(lhWTc(P4rpiZ{_?C?s^S|-}UTe%LnHAVf|Ap=L;D}<>k-ckJrULif_O0S&_da=Li`` z>iD;^g?$$DdujFnO#O45iNA>Vk+#Yf_ILQ}KZfO3DtQ;;_X=1m4G>3V3*W}!J49?Z zOo^#~zQ0f?aaC4-^ft%esImSVBL}Si`X~+7KTD!Ac~k$55DVYFVg2*BVC+Hht)9vk zek*{#^$qZs-^ygmr5_CXbgEkYw+ZW?Ivf2j)_(`&xC1n|mHKZjdsVA{_PAQ%{>e7i z2_<;|O0gsI(jK|@5ocu!eeX0zpNjS09rfQ7_if^c)PE~%P5lSx@$rp} z15mG()n7flzt9_FYCd`|jgbQSMK|@|5h{@bF&Im15)wKoW5!Jcpv#K`xTs`4v9 zzWu^qtg!xvmDYbZjP3N5@~Eu*`aydqNhj-nSXlr4u-^;)$}W|OBelIS4#V%i&yZU0 zgEOrEgRt$4wX((3|AELwE%X4#Nc|s-yv&yRpHrDQN~x^=7oq;Apr2^!eVF7&hK(VYkorFm*FWojJk;#p{zvtHBI^G{%={mY9I*Zq z$l1Cmk^9-!#v22NVU%V`SpU6Rj%{V$F2P0Uu9w=c#U1E&5@faixbn1ko_zia=( zpt}B#g4}aq{Xc@=8Ko+f?*$3|Zf+G)u>~cu3hUES|69-&Plx>e>u)1|f3yv`y|1+X zug3NNSE>ISt5E+p;)>gf>;G4bhq3-y9L|luzeou)!2U#>owSa3G21ke;Mob*nb7v*RbA*{hP48 z1=}~V&cwO~>B69El7`_vtRG_k(2#L^N_fn?Fdq!x3~?~8JZ7F6h2f`QiveJX>qP7$ z9OHsB6B8CXlJjwnadOL*=T0`~ME3~@|1QpjdXm$z&vlkrMK9tL*^?j#{fy5^Vq0k$ zBi#Qhi}cD-f!wkl(c{KnJU96`=Xrd1b#Y|&JRgq-WJR^>)@#tPQR5~}n;j6eXxX}L zyD)K&K=?1n&*NAx#{QGoK85u%tj}Q0$GKWq-$b@i=FX)!R~PGW$g?g+;vC9Q%9H2E zW90w>>tP30v{h-F40AlfvhAYY*=89gITkBrD9d_ay;4tD&j?k;#g&3Vc_9CImS?V6 zM!x5}Sab7h6x1xN#V)#9lJ`N^`Ox_g)-?7X!*&B!=HUWtnYIgY{!XOrF09BenVj#3 z{UKl|8z}>p)5TzH<19Cp*;;IQy}yF>SnMNAaw_)!;3Bn+tTBIBkU8Ye^|NDn`=7;4 z?nW9O#rg(BAHudL)+ex{jdMsUd2`kF_n%xQ2C4D=tgLEClNC6*18IH`>)FWnCah?s zQidoyDL0f2%SxReV@1GSG;1tq%5J#_!sH9!uOp5JuzlR*Me?*6`^?+Ew(PFki|1u! zWoPH)_~qkw?nT;mA+4;}^ROS)d03}Rw-dt})$wYCIVKE`cCfF7*DI>fmyB`HWPi&` z(EBP@)SHtI^K<1swo!dDzvSU@`KX~>v{%EDo$Xbo|9*r&7c258Z5{1cu8r{6YRjl0 zTy$B#)5!1-;~d)>)5Vo-FxoGx3opyd&dK_{{O!=Y4f?lZdndN1V!HtHr(ypL>>q~x zpRg{2j=fmF$Np{DZo~EtY=>YQ$95RDESs~iwuS6@*!BqJd9E||$-x+Z#N|Gn#(Bp7 zRLB{YE99w_@fcuN~}yvm>;G`@&jE=kHpXPjY1f7 zjYa=RY$t>(&Q*0m8>AgU#B%A1QNbmQ+lGgMBQ9*6zWFbMkqoX_$3F7ZXjkv^u0@$W<4P9M|5{D=<37sVCjr&Qib57Q@Uq<-j=wFb`B#Jayl z>I3!S;UBLhG4rew+{3ecR7MsSFN;^M=gHLztA+o57XDWd@lnuU0=5#{RoE`Y+5!7) z&&#pR3y;TQpDT{lxhn8|g%=%Re5L!=ap}1V^x3?0e?RFf4YQB*k|~~zW2};2wCZHI z@?3=ruNS!q@gA2|EhoELb}T15mYbWCo0o^XaDMgbHEQJN7ZlVeD6CntX02LsTbcKm{L{ED?Xj@eIT+j$h{=U^R)ecHH*DN| z{{qQR!M{Y@MG*KF+wX8p8`>D@_yPMrVxN8R04wa9*hSb3=^LXzl5B;Q_rOhHZLpt< z{Q|7Cw`gy2A3|SFj%lBe7rYAN;FS(zPwzq)=J&5yH{#qg*wTiq$NDUeU&5Bx=o?u7 zj^l0EuE7@lN%pgxG`6(2k7LVg9INy>|B3Amtnc9*;=-%+PV#+h|FnYS%inXj$b(oV5_XJU&o6+4Q3 z46pE$cBVW}!In0F=TQgA#n@JT$&!vW!_(G;Y3DV>du-WYUzA~-!;-9tHt`j9_F(_t zSkcdS>f>Akti0EqgBABL=@;|9T?d@$n~(G8H}D=V{Z-g7c{ZB|2D>eN$G36r9jt5* zcVb09kmV$OwM(#NSy7I8W?3!5`aiXV+2mcZS~hGzevNvK_7(R{IC&w`a1pi_V`ckA zo+Q0vuzxf5X`7MvsQx7XU>Hs`_j%Uq$yiUr@#)x}ge~$VWyH3Rd?mYJTa5L8ZSf$6 zyG<5uJ7p1s`6@fHuf5Np`*W;(-l>i{Wk38Oth=xx@6rcn`%GZ}Rjj+Q{|dG&kIEMp zcftKGVly@&$PI||I&7mdi{lt}1Jm(l%AMzFXJ{Wzz;+(C`&~qFrTRJMBJFn=w%rgR zuQhwiYXeLzyu)Lab06aGCs?bY?6R?*f_=*L!#WV_6vW5--oaRxVZ}8o_wMJh-3)FP z6h0R7*PIFemR@7Hf5@|UV{BVtZHBcu;$T{#%ic==?HHUp49qM@E$(~Kk-eooN7-V? z&%}d3$tGB9;J9wtR&++kxh8zFEJ8$&&P`M%z|oTY2zz|KVp*JqmF2?nxesyg#5xuG z)39aTqYX$}P$&4{ndytafGygA*g9N?Ty#%%ABARunZLMCB~#dCSs`CiZmqB%mYbAa z9Oswf9P05y7>f(9)DIeZerN)|Ki>{ANTB;uuVgp@o0tkuqOUa z!8#Ldb0pR&xR&@)#hJ;2k>g?ITDwHauB|*?;AcO`HxdzQ>XGc0p2otmZF)=Bv% z=iu-SM+m`l=t0+%mZg%(`x3e!Y@+NOd(tD0LbQbxC-bZHFX{4MBpPlRFHB)97o9vA zM3Nqz7t-;`33wLihks*|gHT&=(w2-T$D$;7Wt3*KG}6wn)Qyu(P$$jtuY>$;p6r-B zKxz}=QBHPe9+R`EJGj}vQ$*>?b5f%W4Vx`jj?4Rx3q@{rjaXK8tbVNqdEEvKjt^%# zDqKWB)KU^h`Chh{RgjmH@8x6{J?P4nO`$6C$}iKR#8FCx(ypN zY*4pWy`ucuMGfn9>fE)sdyk&IdiUwuum8Y7Lxv6uH8Ml^@B0P$u3yd1sa{wkC$})G zPMumsvFdfI*RNN%c3!=@^;))R+pc|wj=YQMg#`z5neS$0~!Jt5=`B-)uK8kA3r6wTg=B)M;`6?sNHt91W!fl!exqV;8V+e752< zRZea!Czh9setq@a>iPM&yBE}`QL|=2L1AId!lGKWYSpfd*y`4C&a^@&zUH=Pq8jV(y})%NMTddiaXT zE03B#d4AUwD<_PYJbZ3+Ja^dWZgc0fUNCoR>s51y&Y0D`%Y1x`bNIX!D~?(n%wM^1 z-s**c({kyG`OA-4urL_7YW0GpD^_<|G8peqmY!UC!LmPQlXh zrQ$e25X_x>WcOaZmj=fjd1P@X{_Q4z5wAJKPPYL;UZvJY^iotw5J455lfp1ID&+)v93e%A<}c365R5dP&eN z7(Qtg(?I=J(j_^Af_721+6Qe)>wxUw)(Z|rs>;c+@B<^qGVEZ>k^N4tEDMZO>r<>k zIcWKvzDndIh13@5i_&R|$`GB-@LaIysFeYmWUzElai?X2iU%wm*m}W$r5!tVTGnw; zcWGTt6jruYfkN%UOAkd-OXij(5UO#qv>YQ@Havu!dnDW8-1%!(FDzNwcP{>P>)ph~j$dkysmR_z)45yn+X^&uI?5Th0%tEuEoIUuqMFP(if{c`!Jsywn0M2)!o z^~c1Pr9-zvJ0lfUc8{pCqx4n9_OM|@;mg%&h1H_W$nWH>JnT>2s!~h8)u1XAR&8>> z=`UA?=BkX^q@}kii7wX`E%~a}oisvAu9*9Or0xAKzul@VZ?!#3e^t{hJq}CGs;A0q z-@ZE$J)_22*8cw3wY=|Wdxg>NoA%x>?XzFncfYh>NLf7TqU6cFCN9j$af_#+Pp$d3u)mOlyI;^N1qgt$pNA*|{k7}|a zURsy?PG9#*>alxiJysxJN%;-z9u;5(@|Bcd_e#pIdnM)9y^`|lUP<|NucZ8Xl$M{{ z*dKu5KN;GZy#A-XDK@&~PkT8${w20gW83zgpZ0!=?Yw{ew3kDP@Am(BZ#!%+9{BU# zG1vwhf8M(U+fCTwH3M1dn2qBeKh<&97P^h|b7Gs^oI;-GaNAkX)gcVS&A!8%p;m^! z>7<|bZfC%P!chec#?`ETY%J*vX*8fik5(;snqfv@ZHhGa?}?qE1%+pL!)s*wy?R2m z@C7*CXGg{SH1H{({8bV`qe=dKPz@H`XX9@gS0{@qnKu%l=Ad_vjQE7y? zWhdI^hhRxH6Asf}vb3bBqE{-ahrB_!<@BAsUt@R9zMK(&~Egk>FtA_UHW$E6?8A|)~mQT z`pWI5E?f|dnYY@U@7$wbd;F*h6SR^lQ?#AKhAEx1-=`MGCVbPyQ4?A`ATFWyAHM&K zQTS_)GU283CX)J(iGOA<{ydsXvq$5ymCl^(=|3iX*WOY1Hy(>ifQsU8h?HkZh?x5i zOj@}fn*6}&m_*)3#=XDbdhuHIMR?!MZimL|d)4|*LkwBfFi`FIv1+w33GZFRV8wGK zSgZ|#c^5&4*X?MY@pAHzNbj?r_|xN5p2^BdkH99D^8hz)c2`Cmt5$%hFgJHE<<}ra z|FsPa9m~21F9LWEBAr?1PQ)3n4yF&Y&f_lP*w_(QZ7e&s8Hd@i5AZjKyWTj=h*vBA z7Q3-g*nKnm`_-uD+@F!K>>ozqw39m;o9tiy#vr+uB9qy_a=$RQ9?B*AH|{sc{jMAK z_i{hT8wP8G50&tsUETtiqHI?Viu0ED!GR|See(_~#(^&f@x0lXe$1{W2V?Rc8;OH# zIhdTsALL}`$ib|<34?Kv>)wVWCh}e>!a;TSE*vb$<4bwjHC(2+B(EomD7%&%tj>FQ z3=V3$J3-dweT1USuJ5wMlX;y{pV1Ht&rK7w}U0s zOVXCkdk?3w`?xPc&l67dTT!LiSH$kXv}J?rYnaL0-zLhG?sOK! zjm#~6?i@P-=dxq0#C%pNlU)Os5|->3t5eRt8=b|cWnww^vLIrg<6O>K3HLpBr^zl} zeR6UZVYgr$3g6BBeVcc;{1qW;&H-X5fAc#h)x>jQE|cSLe)FWl`+GsGIs^HeQ|k*4 zLSu4^{w9Z+lWHwmfHy!t!I8IlOyLcvc(?H$DEBrmDIAKLcbj}9M~T8$c+~V~Ihs`q z-x=w}qgU{ljYB|Q2 z+hU*ML_URojn3kiz z|Bm@Td7y;Ms~473eH<2EKLg~{8A1vbIhy435+U^z;V*h}&fFlRiA_ZB)i^JDYdD2N z(86*y?2wQxqLAm~u&@Tnxi1PSR^(BVjh_k`Y!iw7SDcsF@lB)cH4*ZnqHN}Wauo7Q z#{N+u$icRkt>*atsM*V3T-LeA9EgThcmhGC==$u$D!nPP!tl{)-&Y8Qzc|^ z6tZ&^a&Z(A_T&8l2$^0dAxA_ZXEJ1GXx|)#JisaZ_Xvc1e5-^^L?KVcVc~k1(3~gJ zLXwKq9SQQ+w}hl@BC&ss^HPsPoWee|LCo& zKsw$llHZ`p<`W}3Asg)-%v%d z;=V$*D}wJOII(V1h1{#ih6W(rmkW7Nk>^mFu^wj#c}$Tl?Lc~_ggmXtOU!AnT|!>e zgnD|vCge3mP8bN%=PMy^De~SVkiN0%EQ5?9Z=yZN`n3@9u_6z*2kAdh$QOzPaLEhFSCMZTw==|2hCsK{!T&Wt*+ zSh@a1iVQ$EFgCM`kjoXx?Flk#jF6Nf^Sgu0K3vFFMe=Ep=ByKPn@z-qUV`&tJ$?C$ zd*eo&i5+^IgilA|PsU;4F|?tFJtf3x5?&!f=63>_n-LOMv^3v^eFx;68TZ2CrhW~a-&C)Mzop7b6d~Ut{|&EHF^|zi8ge#hwCxdPbzX0ZRjyggrpT|LL0iKw-Bd=t!L?EkYgtc zi7T>=WbHDeN0H&Qp~szO^eA#3$?;biJuPiLXVZqBu+!*Kqdlx(L z3!_Jo11NJ+HhMeg-LCw9sTqo=j4 zXUc&fr=Df>D6)Yz^t5Y@9z_};C$ZBXGL5RVIFdX zE3tj3L&$Nop%=9h;&iad<5NKXGFV7jk@IL-E}kVM+0mAHpDDg%rP0Gjc`P}i=VaQ@ zOV2fWI@{z1+R)3k8a;|M>jH9l+UV(G%XB&jPa0U#OYy^n`uL@S!47lQiIpQwVRBdp0-Rj z?csH|7(Kmg@&#?^^-mZ*y=^j{GB>LkSJXOoXB(2C9w4t{oge3dhGCgQRZ#~}V8DNtnE#++-Q-C!ZXp<*NZr^6~ zC^BaT$hN12BnR0tpWq;N$NNI!gKcsRZRqx2gg8TNg6|DFu{-ObrJ@}u@^9MEyNZP* zwmK6*UOPibN)x0v_IgT)GtHJs(}upWOGrYImb?!B_L`8iB3o&5 z-uy~PFx`&r*p487kDq!c-sZRg8E z)CFw8p|;E}+R(2$2uUb1ifQ|Lgpjl%m(zysIZQ}!m>pXIMy_N3UMnQ2$n&(J-&`Oh zqsZ)DAm835BtF-Utta|2vG1M|l2YVB)N|}V86i%>mN}I+^!uNLBovuK8~Q_?X42ji zxs^8bzg>g`^X%BB(IWjgMo7{oVngTSyjag{`HN@y-E1Adtd;PYDEvem7T!l2`s)Qk z;)jPigxo+I`rBe@$no-~FE-0x`&n`e&?nFTug=W!^R&$pKiZ8SyY`{BXwtK3eltOK3N^{(+ z1UZXrsaCALn0vpVghCx@Omp4W1f?~iHO+Is78ESDBmCPypz3a3z$_;fYD(Lf@3t0{ zQRpEWpc-ymP<)9U;U$zRa1R!gQs_9E)SB)ZLC#WJYA$VRp}Sd7LZRA2fNHt72}&z; z1yPavS3$utJ3=<&SZ()xK}m&n(5}{Te-)HbXdd%b*KN?8r4c{Ej&LL`YdyDzpp-)2 z(zMohCkb+v+fr^npa$+zK?#NaM&sJhJxx$rp_gf08@X2t3XZfREanB&*xe;4snF51 zuT9+71!WZK%L}EcyGKxbg&pC)XvLbj)zP`j^-~Jf91V1U+eVOclr8lLno=xqhYCt4 zlyrcayN3u$D|8vHYzy~TK|zTf;VT|cOZNgnNret&3R}6i3(6>TCk<_D_h~`#qwNUW z(9*VXKM<5s=tG*?w(f6&oRzlJ(X_Sg+=dX&^%DwBps{W5_7s#>=rvl~4(@@1f>m~e zSNK33-DQH33N59*?c|;=D5KEhG`OAJl%V)(JHq9(xLw=_1f^^wCie}THyu{_3&$}Z zv&D3CzYqcEm@uw14vSu(&F${yplQS2Df9r1ZV$JGptwTSrULbJ2MJ0jbk1O)UhXVG zNrl?d?Dlq72}&vSAkA(cccY-RLY%jX^>uF+lu>9L&2B&U2|>;pJ6|hkcKf^k6ci}b zU>MK<_a{Mdg$C2?4s`3bmbzEyzwE*ea*G8e6&gmfJJ=mBD5X%)8)%5TNKjg#uV{AT z?#Y5O3iY4?9qMioouCEVeWl`0)@6wYPkD~ptwStXm&@qUkXYnw1#GPq#J9) zEGHG}K-)UXZ7C?F&?W55j&=tNN-NZnW_OG`TTn)!=V*4vx~l~_YwdikWxmF_=L-rH zIs_FJ8}HsCD6UW*joJkFNkIvP8qn-cbTfjI3VlVhJIVc7P)ebH(d-`R)@#esNGrq{ zj@V?ko1lzBXN>@w;!Y6c9B1ciCHu8g-Nk|eh467~Ox?Jr2#PB-dNj~9_ewzth5kmf zJKfzWD5=n;G`ln0R|TaMx|3#iru&tkv_hYGK(pLjv~Ns+DzutrcecxKLZDB4yq&M7 zX?EwhLj(m14TfEb9qi5#6j$gMn%zU(V+17>I-6$qP$j&=pwMYFyYt=dg5ow3vpW&z z#o)#wv-=BM%p!Nb2qYqbJ~%A;fM$2Gdy=4(LNC+oE^#jtlu@WL&F)fnhoE3xm~M&i z8k*f@?n{Ca3Js>&J;MFW=u+ran%(7YHP`@@kwR`B(2;H+C^*s9m7v*O;SLa#Q0O$8 z-J{$Yf>H|2r`auWj~0|sXgbaA(eAlM*Gaannn-nQrF)~%rO<4e-Bs>mMwdd9+1p+1 z{=?`}sM;W)W8D85UF&UKV`)IwxV5p#^%DyHFb?Qgw~L^ZLQhg^txI8)p+Yy(>>lSX z5ELYBUFSi6?09#*poBt0X?9O=FBg&|Pa)o>V@bEUpo~JzX?9O`2MP*Kv2}H&**(RbDJY>(wV6Ptx+{$? zh1^`A)7eX|^stIK?)&T?Hi++D@~3jyq0JN}*?HcF%Pe3d$(N&tJvPbCX8b>9($O zXm&TcR~TIi{gY<*eD_|XOQ9JwyPMpXjV^`i@P@b9{le%v!`5{T&F%$m4lZf5d4<-| z>|W@$5R_6V3*#rTi`+qiG73G%eEr3pB`7%4)^!=p?#1pZqf4Q8ssUZ%ZZx_S+CsB? zse7~0Wg{`WPvE>5++6t!+uD9C1g>!35`n_A!W3-7VNrtZY>WFJLB$HagR3KUrCW$A z3~xUww2Nl|fy} zRE3Hf0bS?bC8+RhJ6~HF;q~qdf{GPt9|O9<{Z!Cog%ZD%@b_>vdYm+uR!j z6)V)ZI?(NITF_*LZsVP1oBOt)5`|hd2fD-kUeG3m2D?Dp-CEsP8rv0G-vj7Qx09gV z3XP^Uxyv0bXpcgRX_4=C4;NH;j-9XAG@u>siGqq1x|F4Hk9(=0$qF?Y4|K14x1bV* zYO$8@b6*s+NueMB+UfpF&~}C19|Ls1o7J6J-mTEr*+9G80|f0+=t(rC*aL2VL51hq z`TCJ}ng`wKf{GP7j`#S7+!8^P6}le1(%8f9If69)RTcPf3y^py+2->62;&wofyG5w%T)*%WZZ#O@T)$YMbK3*G;0A&w+epmr0GtO<0_Z9a{L1~3vo(lA;d##|vCR=I@&F*XNLxP;m zHrhe6`?~w4pp-%**eu>~zZDd}z?OQ4H_yMh1-Kic6Q|G?n%y_u_JWcZ+EQ8UbpPEQ zAt<=WMzeWAzU9splvZf{6ri`=;{_%DVoT93#@=!NBFMSeM!%xJ68nd{T~JD)wYc>NwfP;_hUgBg-&C`&A2W`C{SOQ+EQ~_Det*W1O=DbXnb{`_g%g?jR$0f zzN6Xwz?~{6ak(uuy*bc_?va9=D{M5w1^UQ6OHfLoOVDCtAG_BHif^%{<`w~c;yx@W zqtJOYyPvv$7nHoxmI|f;{mcDMP;ixv9-)wa}7*76tb zNI_1@MzdKdU%ClFDTPkwmGYH)f}r>{wp5JQ>eueYf-(xtr{&t?-YF<~tu3{fZT{cx z^MZowY;+sW#lCSr5tLTwb!Pcn*TXYluAjKxmO5fO(06WALCy^}sxtxTKW<+^DTR9Q za`@imOXazKe5);W0u%p(yFyS#p`8d9`>%VppyZ9VRFj!NKf2co3U0Cy-vNyMUhHh zWfV%l!o=!&hYAYrvUL@p?ZxVOYmF|2y5|Db_bxQL6v}6Jtbw=9=u(ISlCg%~Ge+0l zwyyYCphn(@Mwdco(Wo`{_8MIZeb^AFiPs3@(`eHQHD$wX>h%&7?67ss=Z&G6H(5|Z zp-Gc~4)Bf;lv1dDBcQ-L!{}0IE$`ONy=#oFdu&}dQCAD^L8D8dnRv#Hwe&criOX1_ zk-Yd@dEXda3O&z@sI^xED$(ZewRLUc72d{cCn%v%E!v>A-f%%Fg@*A?)6P3gP)4D9 zh}wI{8D00;x|+vH|k=r_lTz21T{3fx||=-M!_45(>S^ zYq^Jarl6EU0WCmJ?^;0_g&yK_VK46?qidI~t1CwmdV6mgT?#!wYtzU3*632mN27@K z^$O5qN1L~inBDd`Z~D3Nx3*K%jxDCYH$()22f`F^qPnOi?<51fIfBv(T~D(+&^ty@ z;z3*L$}FHk-X=lLLpIt@vpd+kRZvQy!)bPhcuxt6KWs}~!U~Ri?+MB%R5B50sP~JY za?e0gdub z6_irwUE0>s-c^F)kK0nsh{kyL3(6>TEY0p%?=?ZmCv2(KG`r)xuLT89+Gs4z?szW` z=g{?2s3pzr1h2KA#8bA^7#7q-FD}UWtBq!|G$wfm3rZ<;HO=mU-Woyir){a9X?7=j zn+0VQ>PfRZ#bX}=UG-;dspDx1r+QR^`g+zzr_<~n>ljx5|mbGHf`%6-s^%AyKSi#hz|Ak2y$MwQ9m?_*kN9E7)#tU z6e{w7=6Y=e#b2?dPNr1C8!9NH&`&rQo97)ODEX=_^$xGf!@Xk#1+Uqt70vE^?*c(- zg&NcBF7R#_lz82idbt_ULhoro&KowmsyWai?*l<8h4%1TUhMrQDE>EFsxQs%60ac! z*I^13x|=p?sn=6b@=aT6G|lcZ??6Gp-);0N&F&H2GC^sD8q@49_f8j-c*~L!vzx+s zF}PXsH|7)#W{X+j@iPu+oo|N%8*o_Enr8PX?`0F0Lc3^oOS~@xr4_2nhI_P^Gm;So z@7NJOMYFroYauA9&{~?^Ro);$8HEZb1FiOE35x&2j&LLk;uvq0pp-(5Xie658wEM< z+EN#`20GTeSx`cuC-`u;)_X!wTA{lq0v+f5Q&8|vJHm!EyT^M!2}&yTAKKOvyt)X1 zx>u+d(K@eKP&{KtxRGY}L~p#HltKe(c2Dva33A@ErQXJvL~OlxvY>=Q{j-6R-WEY= zh32xLPWJ8-6wtO|$&m)If@b#=?-fBwh3=)XL+f-(xNqS-yy%Ls~pY)9Cy9ng8+&w^44JsbdS^y_ z_cCvYpx|>m!h4$oUGB{hlvF6z2Iva!7(p3@CKGM(HVKMyH|6~zC~YG#yYH`) zsOxrbhMw4AYR-qA+azinMx>jK^3oojR{G=XM!yLY3}rO*vDyLWnz8C?q9O+#~+ z_Yb4%8(Y^mG`n|u|24W4nvxB)!>f%EKJ2lkJ0s=t?O=@-3PqgMwdb>SQ-y{ zpBr5YJ;dJbLtZwj4L3Z6zN`-Pu-9Br@E=>(md-$rcmo9`6xu+uoAzc3N+~p%&E`>W zrJ#&LuhZ;4=JBg#Xouh1x@OSqKJMLQbSZQuZR-=><3^W4zY;y^y=!zSbZsr5r@SAH zt{-e&!)SK@>eWF}=K2YR?xfj$+UqJPrBDZ&-DkXUf-(x-&Fkw~Z=s;zzqYPvG`r7v zNux`l@ie>7dsi4;3b_XWz2MzzbSd;=bD$T!myNC;ZC#5o%o%&h`@-l_XbH{kZZGFR zY4ZwI>j?C+*FsQ6p<`*;UhxJA3VyP6`D`|?db0#26dF&n`4eWQ`PC+S! zo)`x7AMaH`X@$NBfWG&>5|mNs$U>kWyj)xr=<@Eh^K})i=zqOdf&zu=P6ztY8zLyK z(5_lQKY4QmB@~)N1N*agjG&}K&%}X#@iqxcDKwky@K^6vL1~5F=k@iQ$46DvmqN>F zVE20O35wj0ns)dQYuWLC5fp^J8Vzbl1MB+rk#jr_DfDr3AkXhED521SXi72PpC~A) zP?82V%U>cWrOx@$VPpxTte1Ch_xWU}OGkf&v>! zzxHdKmw^QHsu+G4aRcpmo?i`>iQGm4e@D2Y?d*6}_X9ymh1T;%p6?G3lve0b-f3$1 zGXyzam^g{>qB=kY{?SI4LbvfssOg_;bSZQqE4a|V(dbgBRac-|{$oa$Z|myS38={b zhtZ|b9E^U)YWx2+x)k~pS4XUlUwZ~iBdyR2yh!T$T?9E)Y-q+=*qKoy^Vud7yo6WOQC_ZTwVPyj4p+KWs55Ib7o7MS7;@R zx0~NWkW<~(^-~jj^X*q%Q)G*KgO$374VIE$= zVbN-KJ?8rj50z^mLX4~EK1wa{dkRWMh*FZS194tbRQd~`TbQmT{z4H*MFRbBDCtU; z6Zn>8yVSo}1olJ%%Wzo4hv?W5{+)t?I$@F-R}nvV8(Z!_FQ_C!l#+CPf*na$=_~SQ z^NKC;e-(jLB=9l?SY8bd`@H~vlp8zR?*fqPKOG5pI4pXmC(tT?te{MU7+2AEGsDI4nAh z_tX>o_XMRQ#JGyuwE|k_|02lYR40}kk@}Fg+mrnIbD7aZghc9+hCu86?t)ScEh)*( zM4Xr0l)jqPy9oqN_2-L#( z8qV~e6oF(Ua2W+yUYT+N8>rzd|9cTgHx85ZECr~cRwB%U(U9X5-O8fc;I{?H^@Ap% zz|WC}VdVrq@F8%HKT8Bskw7OLiiTBM0F`lY9t6(w&lZ7nBycDNn1}1j2~4dEfsOty z5!f9GY@`75@OmUrI%$|c90HsD&qW{;2|PjpYRH}!X1Y{hD@*ADzX<>aLYsz}-a`Ru z=%WR)oucPhN*DPPMIaLiG{>Q6SW-@4FH7k!{z)Q`Y!+&mN&#xPED|Ukfp0q+0+;)D zh(J0LIF$m-!?WcC9&;gZg`W|D!UIALJ8)R^Ia7P3|FfWYgcw&*<1C=7{CbBo=bIu# zDM?p1oR>Ck(gn+V0&6ejj~0P+B+wX#lCHzc39Ml4UE{A6fjyDH1RNI4Wgf5hFBIei z!;mjrmSTC|b%Ad1w+V_zNbGg>)<8G<&j?CHNTm8OH#hko3Q9#tq^@APZ}ImEN=Hbf zHZX;^`i5+Q7QG)4xPeDng8_=vfYm+~waTXitPhY8P$Y4*vx~L5ncSBGrnf{vQ8RK_wBQ zlspsviXF*KL#HU08Q5N6m?`FKj3!}l!*|(r(eVYq1Z$ISV2z9P`60! zZUgkNzd%qtLLxOAqOr8UUQi-JBDI(|fk*wz1*IZHDM|4iI4>!#;S_yU2SK0opOm2K zDCpHVEP8PW&{KX!&^r<0lvL5HlzQ6#S%E)84C2gKS9vI2vJHJz+#-26qj~@I}L}xEB=WhFfJ09g2SRwM6dam3Yr`t_Cbph zL~rI6qJb&dwoS05xwRAOHj}{%o4k6Mcatp@v{~&x053z*9YGx ziM{I|ASe+b>49@gN2bsG z9|WZ%#LJ=f=i^WeEl1&Uud@J&&24ojc47ZR=S+@qj#EfWWSryl#3S^;>2UWnAdZlZ z(;xZZ@(tkN63a*k6Rh2#xZImel- zi0vGw#3mAZMb2?HL?O#L$JwNa?HuP~MLgKs$T`jyn~2_uoa0;@h2%|GImg+qi0vHb zVVg+o6*v=Qyb-KrHN7UsR2bDYT$snj`6G74F#bDZr_$V#2#JQ0Pg)HzNj3R%uMj?+ENn-JSMPGFP$ zI>(7eA(u& zi0vF_jv}^moP;8_bDTwr*v@g5D`GpxS*eKa9A~W}wsV}56tSJ-oTiBF9A|?fwsV|K zirCI^E>^^LjMQrCdP9Iy3?Hnhri0vFFsR?ap=o}}li0vH5>1*q;o#Vt6v7O^2 z6|tS;q!rMQrCd&Olp_?Hnhri0vFFsfg_yC#{I> z9LE`C>#?2V#1-jF8yY&tNh)GH$4M))!Glcb9LE`K>#?2V#1*lf<0KV%w*_Jgo#Uhx z*@6MC$T^NP#MWaw$B8Razya3KIZjd$+c{2Jk%N55gwAoCxUI)_juThpgzk_Do#P}G zX;mL2bdHm@iP+HnJI8T`hT6+H$4M( z94C3GEpx30nb0{-{4kr?&T*W%HnE-Kq!szT1!4=G<0KQdjO`pJKF=n$a~$Vzo7m2A z(u&y5agy_GnImXJL+3d01vasr<2Va#Vmrr4D`GpxNiMQv#D?zQIZk|W7`~iyoRlKA za~x-hEn_>!Nho4F$4M(18jj+0cxc8-%##CDDoKhloPc8-%$#CDG3 ztgvNl=Qs&PZ09&>MQrCd!BKW>wsV}MBDQm!j3TykoOp>Ho9!GYrHJhu$2r=Tv7O^2 z6tSJ-q!qE9;{+@1*lg!GNkweuI2lE3=Q#0Ic5JqDoRlKAa~x;2E%P>JULxl>2}Nw@ zIB7+e(1wQ2ae`y)*lg!GNkw*fkO`gRWE8QTd_~GRPD&x=9LG7)mQv1f5(+8jIBA8HbDZEL zJ3{3gC#jHfj+0SHImd~wwmFsR7g3;$ta|pOIL^7YlyZ)fP)Iq)Nh_qB;{@kf5sJyJ#5qnf5|H0(D(5&Ug_Lugv_i@` zPDUZ+9LL!hCQfuI=Qx2v$~jJ4A>|w=q0qQ4XfcsbDXq7$~jI( zA>|y$Ip5CLu!)E;a*h)yq@3f#6;jS|5(+8jI7x++bDWey$~jJ2A>|w=qmXir<7~3? zrJUmg3MuC}afLcILuo|LaS{qC=Qv4)lyjVvLdrQ#S|Q~eC!>&Zj^k{$^QD~Q1PUqV zIB|uPbDV@iXN^FXBj-3tg_LugltK>QB#fNnq!m)maWV=i=Qz#|w=qmXir6I^ENQqFM_3MuC} zDTS1CoQy)sIZkl7txGw_NhqY8|w=*kbEa&T$e7Dd#vTg}&yfY~&m#qtJGm-N-pkaHXwFImbyTq@3fV6jIJ{G72f@ zIKfr6F6A62p^$QplTt`I$H^$Pj#FHbbDZF6TbFW*{zUrjOF73WR!BL=nXFK|xryF$u2&TfU2bDTX29nGne$T?2owRXOgbDUy@lyjWP3Z-fw!pJ#J zi9*Ub&L)MFbDZr8Dd#x56}k<{Ep?8wN1;~Dfg{duQ$JwLM)3mLTbDY8(?0hNbIK>Jn=QxuUQqFNo z6jIJ{HYuc><7`(*Img+pkaCW*N1@tHk*~-(PT^KNU&=X7u|n^~Ar(2tnXHgS>{j9&$GI`gQhDb%DTS1CocK+)lyZ)fQAjz*N#1Nr zDd#xBEjCilancGY=QxR5Z7Jm($DwV(k|X(2&T&!-Dd#xx+ifZ394DjD*)+S6bDZQh zTS_^{3GT4b+5l3KbDXq7$~jJAyDg=h<2ZNPNIAzzDWsg^#P71DzQaMObDWGq(`j}i z=Qzo`ZK)YFyODF8V26#AbDXq7$~jKr9$QK|$8qkpk#dfcQb;++iQi{SDd#vDg_Lug zEbDWGq$~jK* zAzMm0#|a*`k#dfcR!BL=Njzdp?PQyeoZ~oY8!6{FDTS1CocN=*lyZ)fQAjz*Nj_#v zDd#xB<2I_z6h_W*(hB`Q?7a!N9aWXTUH9G$Hw-a^L1u~>QOH0Di3}F=EMZUqhZK+m zB9O!kh;tzhsE9$arPY=~#d(PH0Ij91HqKE&ZQG%2#St{lHj4gtRjqaIde=TD_kMPs zr}_FJ-G=1-?Y;J{ed^SybI#3vr#6qW%5n0~*j|w1B%ig>#ruR_D#s}iL5`Ds&h%<8 zyW_}lYV8oqangU6T5SY5PL2q2oDvb_I5i^3and{OSdio7h#LC;h4&3v!$s5#%@}qP?>)mdbHzME5r@lPbqaH`=k5H@#Gj zlOuv0r$hufPK^k1ob+pUEXZ+kM3Cc@h+edJn4!vXYDAFZq+hpVL5`Cnf*hwrG%Nhu z!=4ixwA(rE0cgZkq1UXKP2y&d_ZrclTob;PE zf*hwp1UXLrE!zunoaEa!f*hwr1UXLjAGR0dI5i^3afw6+oCI29tuaq=J9Ui0<| zW2qb``7awmj#DCn94Gsc?FBhbjRWfZ>}R&u1>s-7_vAP=BFJ%ypW9vwn+vGQanfJdXy$N;RE|?2x~A!+a-95^ zwio0$$-Op$9H&GCIZk$;?X_F;t(3}fYDAFZ6u+{)-q2ijRgRPX+D4G$REQQF5PGQ` zC*NdyL5`FB#zv6il!ze5$$o2lL5@?~sJ-ltBgZLzC$(ZZPK^k1ob30u7vwl4BFJ%) zKiFPZpA*(dLC;O8v2suuP2y&d{&$bujI5{H7 zaVkWR3qp=lAc7pHMg%!dcE2qMIZlZPa-8HZwio0$IU>k$DnzI66CP!i9MPKQ6GoNeREQwQN&jvOexkYTsvM_4 z1UXKP2y&b(IX-EAb;csdaY{sIXJIUr<0M12*TKUfQaMhJ=%1TjD#xi1L5`CS+k%ke z6o??lsS!brla1JdkmHnyKHOY(RgRNPvb{!|Ypcp}azv2hREQwQNhjNakmD4HAjhc@ zL5`D6F$LSp?l^LsQai+QoElNHF-cF3lTMXk+Fp?3LCmpq8L5`Cn zf*hwr1UXKP2y&csnjH&roE#D4I3*&;acV@6k$N<@(3 z)QBL*NvGSfAjioO-JOO*Ryj_I2y&bn5#%`O!|Yg)mS`(o{K4g$Qz-8WH3;$qq8Z zb{df5q=+EL$q+$~lOuv0r$7WbPRXeGSzDFkREQwQsS!brlk8}Z3v!$k(chXM>r^>T zh6r+;91-L=1tQ3CN<@(3REQwQsS!brlk8-V>yGB9cT|p(B6@FgfmJz9h6r+;91-L= z1tQ3CN<@(3REQwQsS!brlRVrW7vwl8qUP(Do*XAbbZ>KkRXI+M2y&bPQR8Om$#F_V zkmFQ{Ajhc@UD#Y;RgRPFY>(^n%>`EFI4L5?aWX`Zx98w!Wj*}sR9H&48 zIZlNLa-3v0I~L?P86wDW3Ph0OREQwQNp`nmL5`Clf*hwn1UXKH2y&cc4?EUP&2v@d zI2j_yaSB9`<5Y+s$4U0IV?mCSA%YyIKm<8Xg$Qz-WG_1wuj#D6l9H&AAIZkqb9Sd@t%tq~Ioa4xGF4GRN9A_<}aNdr| zaS9u?!;B-xDYe5y4CB+6P4qX2T6yC%5joMNQa5aaVqUFQ8`X>u#7NK zIZmk^CMw6NwZlZ^IN2j*N)wgiIO!pBAQP42oT43KIZm!oEXTP{qlwCKO6@RF zIZl1397rt3$!19u%W;a?wio0$wMMZVC!K40wb!3<M8KaV5F$+g2oM*Fi|;9a)gX9Q8`Yg9VRNrS+5;pIZmZfEXSF#K;|`3IZmb>cDq=vycdT*v|f;& zO$TzERodZ<(2jDPLZkM|3pq}uQG30H9H-W(?FBhbx=@a$?FBhbrcv7qa-2e=-c|na zOXQGxidD#QO6{;$XxF~_EQ>loju^eCA|)2p5FKsipPO=CIElQe3+lA;`El}51~=X#CWUXbII8pU#)J2Yx~wI{$h za-1({hggoYQKMLnlN>Dz6U%XOjbb@YsZlJ)*{D(b{J1kz@5ym$jbb^@Z#9bLILR?G z!&r{9NTXPeQ)m>+acYfXInIp7$XKx)XSPP|aY2rgY1BL&CMd^Ahr_~ja-7RWj&tkE ztbLk3=j`@B$>+9zNRE^2JnbPl&i_d{&b6%^$Di|CT#mEXrtm}?zVWgd$DSBuJn22{ z-$ahH_g~t-oxk0g$@wj5WEbDg$~09A_saR*ti~P1 z$#M44md%SWPP1-YX zkQ^sHMIM21wB@*RoKjmxa-5Bt zj4Q`UPLm@TSB^7VTaGKoIYC>FE62&TWhBQbkXSiRX_L*$aVl*Y$#Ig?<*3`l%5gHA zw72e?m*W)LK9b|S2#J;BT#v-cabAhU%5iQ+V&yn*Kw{-MZ$@I}IPXAWoEb>09A_saR*thf5-Z2q2Z@#A9E8Nm zaSladajYCCLt^DP1rjUAsgPJXPI8VN$I5XsBvy`7AhB|s3W=5D zB%5gFzR*q93v2vUWiIw9dkF(=gIZlSe%5e%L zR*q94S^R?VuAw5w$&gq%PJzVA zaVjL!o1Z-tIZkrE9mmRXG9>4Yggzq2DUet>PKCtEagqz{I9866*`&ROZeEU4X!}Tx zlU*odw277DBu})7mE%-MtQ@C!lI>&VIN6hJV&yo=Q*2`8I295r$0-)uK30yC#SUFCG#L97si)|k($H^{1(p*DDj*~30iIwA2NUR*ESZe!NIZn3BCRUDam$IZpCan^-wcg~ZBnipy;uE62&Mu!)u9Bv;zR%5f?rR*qAw zuzjo?CtGO~E5}Jz*~H3mDkN5pQ#{S~v2vVjwN0!XCs|_?E61sjSUFCy*7mV-oNS#< ztQ;q~$|i4YuAw5wsgPJXPVscx$I5ZCt8Mbf<{Bz;oa7lcv2vUWiIw9N&$NB494C90 zO{^RzdA3b19| zRXMUGPwFST4TxL~{Qy_vIr$z)hPWDDy@PK_o!2^bV6mD9ljg*KW$4TB~ zdqIwqBZ3^KLIgQZ`es}3bt7RKj~sexm`%9iBZ3^KMg%!dcAG5-IZkP#_LBR}Fi`tN z{nYmNp=9PynhoaX4Bgw#AbE?_s={AqLXMLnf*dD91UXKQ2y&bP5#%@}BFJ$nM3Cdu zh)%O|oaC+cxFE+#5$$|jSdAlx?%%I@JTgR(k$ z3Ph0Ol!ze5sSrVqQzL>LCwYfGF353GM3CcTh#<$w5kZbqAiBA^?5Z56LC$4NhE$ATOuM+7-ei3oC>8WH3;>4)rCkmKZtAjc^Y zL5@=+8XgHxhnEi(hcr)z^uu;6$Z>K+kmHny9=~rWxPItsZNVB5{yWFcGvf|>T#)0;Mg%#|B1DkmtU?4i&U!>?8dgK)I2#Z_j|vk^g#vj`F7II9prjh_lX>*L8WH3;#kXxQ$Z^vDuo2`q6(Y!S^6%JQ zkmDr(X(PySN<@(3WZ$*DrZ$hV%5iE$kmD5Jv%Mh4NxyF+$Z;wgwU^y-LC#`Kk$Z>K+kmHnyAjhc@L5`FD(2fN;PL2q2oDvb_I5i^3ank>?V?mCS zBZ3^KLES0Kdvcr{5#%@}BFJ%SM3Cd8Kel5*j*}yT9H&GCIZlme zkLG?s(>9_Z;268UMK*3v!$s5#%@} zBFJ%SM3Cd8zp!ILj*}yT9H&GCIZllTa-8&+cC1<9UqklfI5{H7aY{sx?7wX<$Z={!kmD5h+g_04q<^syWY|WKh5v+a{3qF7kmID2Z3H<^g$Qz-e2VP_IZiUwMv&u_h#<$w zMr|+1acV@6;}p|uFUWDyt!xB2PK5|^oP2B3tG(=wBgaX$kq)sOCr1Q1PK5|^oOD}T z5OSOX5#%^EBFJ&F>9!!`I3*&;agvAGUXbJDh#<$Q5J8TU&aed`$0-m&j#DFo94Fh( z7K9w9L91-L=6(Y!S z(p_x9vzrU3%5e%rkmJ;dAjipewFR3KW%Sj<-#DeY?3Rci$4Pdxy&%WQ5kZbqA%Ywy z-Q5<19H&4u+Nc;*j#DFo94Fhu7K9w9LBt1D!i3oC>8WH3;X==xU94AKvIZlZPa-13w z8WH3;>Hc;s$Z>K+kmHnyAjhc@L5`CiV8?K+kmHnyAjhc@L5`C)lM274w$~`gadJeLHCJSn_FI4L5?aWX`ZRF|rzgkB5J8TUBZ3^KKm<8XiRf=(PCYqJg$Qz-8WH3;$)WbRAje4& zL5`Clf*dDD1UXKD2y&bf5#%@(BFJ%SM3Cbov+Qv}j*}vS94A8rIZloUa-0GYuj*}yT9H&48IZlb_i<81}O&+;6Y+D$P3(=37Xv#?Q z08AUH5kZcV%(ce_IZkS$_P%x;IZmb>VmVHM2y&bX5#%_@VKTY4Amlh1BFJ$HM3CcD zh#<#F=Gn0z$H@>uj#D6l9H&AAIZkr89Sd@t3=!lw1tQ3CDnyXuB=hZ9kmF>CAjc^X zL5@=)f*dC~!j1(wPKF3_oB|Q#I29tuagqggEXZ*(M3CbYh#<$Q5J8TUEVN@mj*}sR z9H&48IZlNLa-8JRb}YzoGDKev?M5FtQk>sB!wW=^<5Y+s$4QQ~V?mCSA%YyIKm<8X zg$Qz-gj_oD31+F_z{ob-4ZVWM)JTsuru zj#FueiOO+m?a-(W+D&f9k>jK%$T76rr>~t9PP0o!c6oAhnq?Zb+62gP3XOW&gmL6J zrFNL89A}euh~+rxi8AF_jC$1Ma-2olVWM)JLOV=Uj#Hf> zQ<|t8Cp}X-OjM3jYKMu+aVqUFQ8~^=?QlabuLI-Aacb=_Q8`ZeSUKoTI>I<|oLW0f zRE|@eB_m8!j#FueiOO+iERqpoIZmcgEXP@|(M07qm3Ek@9A}euh~+rR*)rw!$_qJ8 zrcrynh8!o?sO@#cq;M&J+sKbEZZ74eMr|+1aVm}4UXbG?=g2gASNX#)*{mEV)ed`w zcI~UrvZw>(IIFb7qR@_VoKmBv7UejbG-`W6j+34%Q*L`fjGk=Mot8EQw|U$N z%{^x_we1BtPO4Gc>y%?duP=?9(e^q@qo!AT0*oWaIZZpna-2mP#d4fNqgakpYZS|I z(#Ojo#d4fQ8nw@lJC6^C^!<^&mNg5JYZS|IR%;Z?aSDxMInG9nVmVIo1eswh$H_Hn zuEaA>ZT`8z&qhAg&Tzd(u^eZEM(uGyj#FvWJRQcB*m2z*+8y<{ zB>Cp2v(O?*RQj_`*m7w2)w_q^_6tA6oQw>$hcPnT9>%2ZFh=AsZfcs%Ufee8mY_S7 zr!_=Y;}`Qno5QYcNVhN}-J*rU&B2FK)5D64Oq%rJ@VDWsLdB80UfQ%Cope)po(|s; zo?w%%4_^o*!#jk3ZaV4Z%^yRJW&tOUP8q#1{B_FckHYU$n?DYpwlMJ7zYBjHJt_S0 z+f)9yb~r4Caw9`g7#f;bar(&oSMfMf#Ix>iT zhh%lpCO0C1^alx~KQ?K{{k)F5OETk!yN2q|_;tq^&+s z`g7?C-AcvMA0&|eAc6G9ChfQbr9axTxw)Y92MMGTVTSo(tm(jO#{{vd($ z2MMGR9??llCpiIMN?&A4`9bK>C9O(jO#{{vd($ z2MMG`>g9Oqa zB#{0ff%FFnq(4{4Sr|)ykU;u_1kxWQkp3Wn^alx~KS&_`LGrY46&XEg?KaJ|WF8Vo ze~>`>g9OqaB#{0ff%FFnq(4Z~a7FA%e~>`>g9OqaB#{0ff%FFnq(4X?{Xqih4-!a! zkU;u_`>v(k`>g9Or_RdyUme~>`>g9OqaB#{0*&5i@<4-!a! zkU;u_1k#_?b{t55kU;u_1kxWQkp8T(<3Rd@1kxWQkp3Wn^k=Od2htxTkp3Wn^alx~ zKkMu`kp3Wn^alx~KS&ld*HD%ITxG|B^alx~KS&_`K?3Q|)9pBr{vd($2MMGAbI1k#^tYy#;I5=eiZZ~H*{b1jnQK2)VY zFR%%uKS&_`d7CcO70_o3-Z35{J5=eipvwa}_d5KLR{duWPApJoC>Cek-A4q?$ zw+W;_FSiM#KS&_`xxw~<^yd{ef%Ip+O(6Y20_o3G7$TMg15CcA`3`tCA(jvGFAy3O{1 z^alx~KS&_`d5f(E=?@Y}e~>`>^Hy68(jO#{{=Cihf%FFnq(4X?{dv2sw%vYV-G2D( z-I{ePkU;u_1k#^(*lLjeAc6Gfowg68KS+)X%|?H^Hhg^-zN1G1>Cd}tHAsJuK>C9O z(w}$RYL_+FP?i25f%NA+whyE~NFe<|0_o3tZMEs)lk1-J2MMG$V5>p;g9Or_ z_t`$zHrG&<{vd($2MMG<@3++;{jo`V4IM}NqwQnq&j)0TSo(tm(w`5SK2G|Bh|(WK zl>U6k7NqnC5v4zfDE;}cElBAPB1(TgVteh^JbFFp48#EQTp?*wil&8h$#I*^tI-b(p`scX~#-GVGC0FgXn3Y-RSN^celN2M3nw~(iWuj z2N9(|mF-3852B*E$o8Z^h$#K}lr2c<4{ve|C=ih8EN`DYh z`h$qlpU>EWuWO#LJ?Rf3N`DYh`tw;^kkTI;wU^v)hQr>R^yhO@tNnMwl>Q*1^al~8 zKZq#(K}6{fB1(S{QTl_3(w~2~$3^K6B1(S{QTl_3(jP>W{ve|C2N9(|h$#KJ(;gS4 zKZq#(K}6{fB1(S{QTl_3(jP>W{ve|C=kxZsDE&e7r2WG4=k%d>9MD{LGengBAfogK z5v4zfDE&c1=?|jo!jX)gJ#@x_%?y(-*yEz~2N9(|h$#I*MClKro14pSPx^z1(jP>W z{ve|C=Zp5ZDE&cnOmo@oNq-Pg`h$qlA4HV?AfogK(FdB#ZcqAyh|-@g+2f-02N9(| zHfk@s<4J$CLm%l6B1(S{QTp>`nRg%Q4$ zI~Jush$#I*MClJAN`E%mu_*mPMClJAN`DYh`tvnA7NtLkDE&c1=?@}Gf4*+VqVxw5 zr9X()>=&Lt#n9g2hn1&|)QBkk`Gy^f(jP>W{ve|C2N9(|ciFL;58y^$H1u!n40A-3 z{ve|C2N9(|ciXX=H%_B39h!AWvl=;~4b5fuWkaX6QHhAsA4J2=<*6tA`KBF<(jP>W z{vdjMbJ^`le-Kgn^DR3Tr9X%${XsQ*1^yfSFxG4QWMClJAN`DYh`h$qlA4HV? zAfogK5v4!>X^)H2A4HV?AfogK5v4zfDE&c1=?@}Ge-Kgn^Idyfl>Q*1^al~8KZv$# zJ}&sk&{yU(m#6iJ(lkUp=?@}Ge-QmT{ABHz^al~8Ki{**Md=SBN`DYh`h)1s=Gywn zp|`Z|q4kI;{XsQ*1 z^ydfmxG4QWMCp%>+RN^E(jV>6NBUFC4Ejia5K;Q`L)(kepZ~HEr9X%${rQpY_1)&h zvnTyQMCs3uZ7)iH?y(W2KZq#(`HAgC>CaDXMClKrtD9%|_lLgN8jG@@*68(q*mC_U*9B1(ULYkN`pgNV|f-`QT2{`}rXl>Q*1^yd$@7o|Ucv=OC0h$#K} zlkG+64CfM6MCp%>+RN^E(x1Oetv=EpM3nv@qVy*@F=>8HZ3|NRgNV`}M3nv@qV#9Tjz#GY zB1(S{QTl_3(w|{F)-S_fMrRIh6aH~+cyot{(jP>W{ve|CXT***J^Uo(nDhq`r9X%$ z{XsA9M3nv@qV#9fjQ*1^al~8KU>+cDE&c1=?@}Ge-Kgnv$Y*-*5t4n^M}8EO#56$MClJAN`GwB zUUtWm{%j*N=p+3>MCs4Aw%5N*3iCdCczyWS?BP3v={BPD2N9(|53{`}{Xs75K;QGgY8A>4}7ksH4RUPp7bZR5v4zfDE-;n_M-G>9~&*q!dOok-un3FsaGPR^k-k&>zbxl zPx^z1(x3foFG_#*w-Kd3h$#Iz!1ki_=Rg}#`h$qlpMz{KN`DZ2pt(jZAD$O(GQ-an zKEn1od2)!JI($|er3c%H(jP>W{yft3YA?HGsMh`@!=(22(PZW^4-3Pr82)fOO!6q{ z@Y3+tnfr&&zD8FLH(!c`n>a+2{ve|C=MYW{ve|C=TKXa(jP>W{>-wyDE&c1 z=?@}Ge`ec)l>Q*1^al~8KXYtBN`DYh`ZL$|qVxw5r9X%${W;7Qr1S?7r9X%${h4PA zQu>34(x1a^FG_z9QTl_3(x3UZAf-QuDE&c1>CX|iAf-QuKG9ruZy4U`l=d!Uf$c@< z4Q*1^al~8KgZj#DE&c1=?@}Ge-KgnbAla< z(jP>W{ve|C2N9(|C)%+n{Xs{yikAbMYO+3iVx5FOlHc6-tvM3nxVYR97V2N9(|h$#I*MCs3I zb}UMN5M9<>k$ch~M3nv@divzh>+8cupVeF(($no&l>Q*1^al~8KN|Is{+uCW^^yJ{ zqVxw5r9X%${Xsw8us152LWL-W{ve|C2N9(|h$#I*bZ>Kk?MZ(SQTnsU9v7uQh$#I*MClJAN`DZ2zPZ5u zb$I=`?adOR3!3w=C;dT0=?@}Gf6lhYMd=SBN`DYh`h$qlA4HV?Ao}8@a9lm<527D6 zQBV4Vh|-^P>~T^0W25%Ic0B2icIYGhK}6{fB1(VGmC5yy{ve|C2N9(|h$#Iz&yGdu z4`r$9vM4CcnwSob#<>z?!n5v4zfDE&c1>Ccnx zSgXQcM(2;b{etGi&Ja=hgNV`}M3nwK#g0Yk4F;2M(wtp<4J$C zLm%l6q9ptplm0B0c~4mSqa7wJ{m~8+mi}mm2}^%2l4F>#^hY~PSo(9Zj4)y8k9L@_ z^yd;8VZzcM?J!~Kk9L@_^hY~13Ws)++wr77OXL{ZZQ<88w;ny|k4CKyg3=$2dOC>l zq(9nW!qOk@&`0{SRHocV`lHc=r9awX!qOk@&`0{CQ6K5gGMVy(r9awX!qT5hWrRM` zAC3A*f0o-`l>TVcNBZ+r)2qGAow-=PtQu~=teTw6oFDeN7`=Ank`RP~A7>Co($KIJ0+ zE#q5;!UOlpk=;WOKDb^X2fay07*G169VRUOSt%n-So)(KCM^AFZX&|3sePnB8ugL> zXf$Ezk9L@_^hZ1Nk^VeQrrch6DgDu?y)S{b{K^hcw%*9FZ(Q;j@tN%IuTHR>b%(WvRw&iK8dOM8Wlq(9p9 zme9gUe>8f<Xw*mgqfsB}&(mdweWX7cHCJLM{n4n8^hcxixG4S6sChb!EBzVT zZfO7M+iyKGeYfe`4b7Z7BkaRByi+nV{n1+=x%H{r2i?qm$<|vR6Y}7nkw1oil{NWc zfrb~E=08oVsRty@e@3?-8kxTJ)=l4`@YiYE_6jWst+$fDPCj+}=C51pFyVw68aj3R zrpLB>hdQ%DIQ`I}$L!M0;=o;+iDf(g({Z~rO&&HmC~&&j4euNr5%YRuG=JSL{MDp0 zB@IJ1>GordAG6C*Ve_CJENEIJ53Pqh^pDx)q4k*H`7!ns(Pv9|icHeeyLn51p8LO_CGy2h+lpDtN@gQ+DVt)3*)34~0J` z&EIFOTeEuB@)eg{v2MxIr2Wek%P*dF=_QxUx_ZI<#q;MKvU=%~%Pv}b$Q8?1th;*F zyh9fpdN`X)-&q$gU%Mtb^w3#{9@_mL{?PpYd1sw<#<@vy@rp&OS6;IC(xodFA9wQH z#TQ+5_1r_lB{xadtX&d}XNO+aOeXw!$6)zUT7S@VZv zWZKZ^jiXlu72EKX_2KuS^;1UQKYYmcqwAW#Oj$eSC!@EFmcs|{^r~yGz4evXURyT* z8<{qI(9mN;5dLputI;=%mZNiS9sR@TzYafg`{76K*c7{?`EB%D&F?}+uN_09x3qsQ zo8L#)jlLoLcWBCKQ$}`r!{{4rsU4aI|5&LVwp^+0U8(=U0q(fvO8Eo)AIxeCmfC`A zwFOIs1Kd)lXqeTl_7r_^Ec=7=yn1lX>cM%oZ^2oGtLU4z&?)-R+1|aJP2|Pv|NPlL zbIZMWZNY2%j5mzla{KUbxS@NH-QvypU%th=^hmkI+j;`Gc(*=ui?@X?ng8c616%O9 zy9G-3{uGyhRU|&+%?u z`TyZ2?~TI;Km5k<`JMdljqT@nXN1o)+E4PrXL;L(&+^_fdPn;)Uic)h`~MwBUn)(y zhPSqVyEVMW#AkKQCx4?a2&HaqKD2vf^IP}%-)Q?W-{`j+GV+YE5Bs)W78;jLhqhoj zdRtU*hkvwSQ}&i{C|h)fw`|E7c54~W@E<+Xa8&DTSB(c!85 z(6hO{Wov(6?tkxv^g;hzX+A0J?xNSMy=e8?W0x#heO&uvmB+1H7JjO7&f;?xEL?p2 zV^2OTxn%k3OU}J)`LeYwzHrVF^Eb!m4QPM(06u>JKVkr1Fn}+N_`G?|Jm<_#7Oz{e zZq3pqbJ1e%;tLON4L?puUNWb zrSE&#Tq*8Wr#EPSzOeb()s<`PO3z(<&YZ)$6&;+-+f2X1HoI5U?D&x# z<9uYtI3L+D&PR5PbKE(LFPuBC&$wfp~{<8F$cp7AA|=T()xc+KbmM z!=oQ6&RNhbR8(-z!uG6)pE4bf4n*2V2O>N=5aENyjSfWG4>;)#YmQ;SiPdHUPOLT? zaALLDf@Il>i>_RnTye$fx#54!&uWK@N^^zL3rqOn?EcrBxl&+V_%ZG|^B1qh!iQ6+ zeWGw31D(5|eLMznu1jctSa+f?2v6=SF1mD0^Bn2(^W^RsJf}TLx%OkV_?VCJXihRV zAM>&He9QxHFJckZtIy)aE0-;E%ha6l-GXpZ4eu^_(X~?AN0XY{j?OY+P92U8t-}L~ z#D~z~q zFuy$=;%@Tz#z8op`@WpEm}}WwVOq?!>|w5D5A)pYVV?dy9IeE>_DK{^{0KeS`~nSF z0cjuA@18(mJ)=5(&a!5jvs)f7O~>Q4>3F<29gkP1v##;*6|9oI9`Aj$H(8|=cLF|JX+V{KP>EURW zUF&F)-K9LbHg`BG(%}I`c%We>UF+z0y2~%ug1dde-8nuU@`(>Efj;miP-` z*Ed@24o7Qo*q}x2c+|e{U41w{;n9%@j}Aq6^ymwZuP%C%Wl#RGaie+mdFqDNEsf^b z(rAV)jpo=9hny>iXrVaiKaEnm<+KD{@E=0lh{ z1C!|E9JyZ%Q(1h;W#J3oWL5J)OY@PAyaR3DeKs!`3+?G(25Ucx@ux$#9?@CS;plYe zaCAB>?0@s$;iyQ52Na1O$F6nsICeOC96QX%F`Nv2Z=J^Yyky;qHOntuv2;lq)^@dD zBk3JYO?Wgn;nC!Tb9Uj(Zdb2)V8hF3^JXl(<6U;e%8S-w9-&?L!XM72exE!vkM3cE zqr>}0eXpzCwU~z+hVO8nx3uP#H+pN@%ldz$qHk&KMXGtO_qo$=aQ7Z%@CvxgU9S=! ziU#*NV|$oqY!CB{?P0D{b5aeuF`lar^uWvYg6Q1n_kOAwx?LbXZF@MLf7_b#Zzj5+ z|7(G8mKke5s7|~PUH$m^(Q!T~WA(WPfzO%K|FeY_N3-l&N0aPuG{+7{Q|xdw!wz$T zVc8GU2e#koKj@C9`@nz?VRNwUjc$BYEsl<=JEfu`9gd20ctDY8X}Z=&n7jK`Yolvp z*N7_;j-tD}@AGL$`EUQ5T@kKquXS{Gbu-~%hSuHXBr2kBK;&X_;*v|3u35A+e9hH;3>{t!+(lJB z28|E3`@G-r_IcN5A;&luVT^MX8a}tZn!u>-6#2_ z3$G%*o3-Q2?NxgN)m@4m;AI~syhxu^!Fdxkxj*e>3n}zmZIb@h(cfZXcdzeG^ zFo*2n==AAoa~*rF!{_GVZf(s)S1nz9@kMKv;<*+Yb@vxxt=snj&D)6feSm#Njq+>WQ7O%RmAJo1H>+@M}Z$|NH-CdjFr`dq(p}d4dbM5=m5{^N5{4^VIO_cW0AJWZ*ZDfw{LU8bFANB-8)V9n1@dKW_L4vcv!tY(dy_M zWc#$~wO%;*oek#kpA8q^jonEdb^B?1w2dU4)(C411S=bgwN7CW=K>A-3yVtX* zNQVa$i5H`-9betLPkIMESKW(f^Td}9e4>U!?Y=Q}g_}VEzr#Gru;6m5@7ARWx|_`C`1?Lz#@cfQ z#&|UQ_GE}A-_mIAa^kqxy1q}u-UAnY%(!Koi zX0wOG>u>Ypj%n|c{_q|gvk2?bJ(=Tm?=FpwYvt(CXr~dKNBuv7ZE5s4v@}|bmPU_5 zOSu%`NLm`rtou`_UfeTJ&%QSUjUJG9=dQT)jC z`zR$mVDfo)`*Vfi63r7pbIwa?^l-GbxDeVldN{fh)=e`kgv`gD-b$lIYuj>ep>6jH z7vVmW3ytN2uP~41!;95RFIp0RcoCWnc+21K$B)7hcbL=dVNR@v`550&)Rh> zmLA={Y%RZ}p{p;s?C7w0^C9!+rH5Ra9ujs{KKhb{n|<36UdEcm3oqaOe%PhGm5-ix zEsa*FrO^VlG+LjQMyFs)qeW{e*DO4!E#=IVa%M_7Go_rF(#^bg=<~AQJ*x4uq4%>t zi?0kDRpa8^Jm}JGz#FNtH__b#)crhC^x0gPvAijb)mWQ@2jL5o@Wx{4n(&3AyhrnMj^CkmcQ>3^vw-qm&mLh9$HU8;os}z=^2c}L ze?irKFyhK~@3VMTh0*%GhwI^J%3bUEVPl7@&p6|p-cJ$Pp~7R-J()RF4@c*3*P281 zT1Sss*E)L8Ivg!phsRzRqpNNhsQaKhoW}!yZYjEPmoB`BG^-|0bU8EJKWuBSKGB7* z?ZSySCqe&DNIJ|V?6r=Uu+K|tv$8E_ksdyL><-MougXp#9Dg`{?lZg&T zwL2Wu?r`_Wo^)zZ(z|m|zSiJF*DRHOtlIZ;!|pSIvCq29tBC!crD?#`4wc(?CGHie zS%mfhj-L!IjvoX$gZ$C7Z)&3=-6c3GGT>Y44oAv^yLf^l-LMK}?9_a>V^#p2hAzCZR93ikc6 zr!gL#iPD~r^jQ1oG3{<|qqD2S(SzDy4jRt$4s*;Nj?S*G^?;d#6{OGIAqNA1XfWx}?y+Cx6iLVawT|#uG3g=q44||{2l7@Ge@VHLL<2oJZ zVT{$`qc+B)$7k#_9{b|fbm%@ui_b&t(fb}YzM*Qqi5;}^%@VF!w|Lp=rB7RY@+r^6 z(;}Q*-Mws|QQOzr__N4v8F;v%jC`RIJuwD+BHrP{``v5~xKU{D1Q!hKFt}7S)$X&$ zg#%0RA!{F*K41QaWA2v1EnR5e?_RAb)AwtDu{r}jIBD;)nhEqhMENFn&`tZien;8% z8C-4tz&=L|O!_`B?KnImnq}y&Q1KJ50qWhc$P3!KTIJO^{`=5bsANr@d^ciq--n%sLY#-}4;HJITFFLtef>7 z@NJXuxJ=hRer)^g_0!bvcwDFBgX(aR#_Dhp#&|g8`#vXns}~w9UU|imW)qBXlkQLN z?nmF;^QL)dx_{vBf@au0uY5hsgAHZc#&MDEH7R;hb(lp$?GAIn%oL;3pli&+!< z-Cdx=9Q!U~coGfz2L;{I@gSOE`oF#IaC8tI=7ZiV5tJ zc83=vD_5-w-$`8*Zmpw#gxxiQNtJ}5anH(OAb~!kaK>K|* zs*O31USrN$8*>`H#sg{$c)1FXZ+Evd_%pID=URl(x+~Cl-J(V5x<#wf;pjj+934`J zxd7oj>HiUCpVwDy%kh+QxIp{<`-3sggBjydb*VF`K9_i`PIR17CtBP7$FH}c{hM== z;c;z?aEeN!iF8-E=qcFYXjwYU0mD&tm)@vIhod4L9#DkS?$wSKwkr}HPKUWpp-A`P z7>k4@kjLrJS_V{?m(Bv>nbZXsFS>;K$9|&ptWluplkvoRxCUN;zkx z(L%R%qa$f4&#*A#J~LCwnJMMWlyYWDqd9c-aE$YC#yAgWj7MjqjLYR6 zYah+C`>_sQ`X}?`^b6-9) znQ_C?KJB+pcJ9k}NYcK1$K;^Ce5d5kujp6*;YqT-AKy8-tS{dsDf;qVqq#R=B-w2M z-+chzV*uZC0N*R(L3)@>N`CWqA8ZrAP!g}(E`bjx+a{~rJE?8NxR@{wm>{9Dld)t#&%L zo#7Oj=jVmbaQq(OJ2^fy+#T2Mj_)CSAK}xb{t?1wJAStCV;sL+_#)wYroLGCD#za> ze7)nJ6u!an{}jH_@jnUQVIj%XvOW~>TvxHZ|cMyK1@LKp$!f(*} zJ9qVG2!F5e*}{W@wEeYFcqaTw!ha>a6n>EKZ6B46V z*ZE%|`~>06^S}A^a^bn~w53V%TH%G`ZxdcR{t@Ao@J#A_MtHJoH&5kX7oIu(L*a#R zJmA=$_$wV>DEwx}&l3Iy$Cn9zv*XVZ{tm})628IlcL@KmX|@xz3F$MMsI*N*4Hf8zMlh2QJ=4Z?rx_-(@f z?D!qR|K|8NgiqS7JAcAo+h4yBzLn!cQ@eGT;rPzNcXE7|@ZB9hN%%gFKUw%ej;|Gd zsN*jaKF{$t34gTXw+qi4|GMy#9RIoSGaOGwyLC9n@tuXA@Az!tPjUPd;Y%FPg+JBt ztA(#}{1w8la{MjApY8Z3gg@W$ZwkN8@m~qQ!SN~K1-*G*+~oM4!e8t7eBq_zj}`tF z$Cn9zm*dYBUI{-)&fA-WC%bp&v+{Qc&m6CW7mj~Z>pOn0*58BmN5TtGvksZ#y9zHH zpCi0-{AA(Do~-|5t?&3+t?&5Dw7%nS)cSj|{>QYw;~TZU<3H8^>@A!7%#-KS* zl6_hKAmN$gnef8#^MzNAuhjbcvHpv+zT^L*^&S6^)_45NT7Q4mzenpk{(#nZe8=!s zq*;f`@ka?y4q*M`g=daGQF!6_8m;g6%e4N1tp6sh@A&On-|=r~eaC;P^$%kGk#NJ` zULPFaO?V;vgK{04qwOEj)lq)3@Z@0fCkw9}U!(OO$@VYN`i~+nwf-UGAJO`be?{vb z%Jx6j`m@OI*ZQ-`w+l~+_Iz;sAmPOvwttN9Y%clZg(ruRU#aySe}UGY$M&z)`iGOh zPwUSozfn|YRHoU=UuMZ2!_Y+<@ex&f?(QJQ?@a#zPmNh@S*`yV^6zPV$N!-9Gq&GmJ9)kwOTMr0kLE)<1>(&syK{88f?eC{AVjgM??Nk!Qk_)5*^l zUOB!>>z~2)*J=GT$xE&OSn`i*ec`!W$G##wJ*#W4{Kvuz$L|+jJ3eE3IUg3W&H=(p z$B!1CoXz&<3C|tBTzKX9HNw+#Sm!mu3&-ChymtJv!n1Q(=exp7$A2e0IgjnP3LiK$ z*N5Eky@gkfA0a$_9P2z*c;Wa`;kDz>7M?wxbzUXBbo?E{lP9qKr-bK@e_MFv_^*Yh z=d;d~9p!o9_#VP*$L9&pE?}M0g_n+BEIhf8?Vl+;cl?#YE63k1JbfbTRKg3#za_kO z{MW*>C$Y}dow{`>9p6iM@?^F@LU``@S;8yFmkCdw!aC0pUO4`0;kD!M7M?9;ozDs{ z9si#2Bxn0S2+tkgHhi_v-ak0Lzwq=T);U^u;rQc(*TPSd>)7SOvx~br%C8Y#I{q5r z$t7(6ZsED(|0cY0{5!(aC9Lxs;f3R);RDQO9cst-6rL?*oq57b$4?iYEMxnNh3Aex zLwM!*dg1A%tn*gkh2x(PUORr5@a!_y`K9pE@!{}AOM4%+ob7iJo;yBUc;)!X!qca+ z&QpXJj;|A5JAS?J>~hw5lkn2-=!c)gH;hE!45S}}}LU`f$3x$`Czg~Fd_y>j8j(G%c0E61NEymtI0!jorm{-yBL@s9}4 z9RI5D-0`0ZFC727@Y3;zhYLuv4wd7xgx8LrEIfG@=f7BZ>iE-zXO6!@crJXur2BQ7 z@Y3>a-0|uAbn8$$zQ6F=@uP&N1?!(H zJa_!5THo<&w7%mvYyE3j|Giq@@y}^}$G@lb9sj-7e?IGPy{}v!9N$NH>G(q7wc}?C zPp@VD$>{k zV~zIL@xo_2exdM1jz3NKD#x!AzTWX$gl};CBf>X2{#D_d9RI2C886}d|0aC4<2xSE zt-~V64-vk~@e_rwcl^o1H#ojd_(sQHE_{>Yw+Wx|QqKPl;j?+V}G`0s^p zbbQG-5ab;p~%p6z!RUOPTdc=0c6e}?e%4dhFN zSB^hhczz4p-y}RK$=@Zsbo?{Ivs>Bzd%|nS|0uk8Bim0uM9%*=kslzua{L(K`J37P z3Br@x$X5w39e;`N>@95nM&Y&Nw+k=c%J$z7p1zIzm%=N@Cmq@yZ~k_+-$Quv4)XcJ zOUKU=p1qUpFB4unevRt8(9C@THowjD8JN|2}@A#D2 z-8$5c?;$*WKkLsEo;!ZJ@Y3;%wZ7xe(E1->{q)%uQ) z%<0ylbbMFgwc~SyrypYdQ-tS^FV^~wU#0aOf4SEGFzdfr>pOnC)_45tTHo=XYyFR~ z{?J^xJ~+OM@Y3-)!fVG*6`p>S^)J%;jz2@|JAR|qcl_;I|6{EGDXs7Le`tNjf1~vs zpLUpBA3o0ddkfDUUnsnE{A}U15~j*rai)}i<$+wUSgt;lB!uN)6%uJ-*!{wcP9ityyqt$5#r^H?sYUgePAke}nMS@ed2nzRvbv5nem~6XC@-*#2+A)4RxbI-*;L%JD;m z=XbOHNy3wFl0QXw>G)N`vv0Be4Z>^3-y*#DHrszfc={jY-xOXs{wv}6ci4W)0y+Qx zv*Q=ab!>Oxx#M$%SB{?|JpC@~JVkin_*&t$<1ZDSeUEiY;icmr7M^^c?Y}HMcl^h~ zE64vLJpBRd%v{*5PvQ6@gx8K|!n2xno*=w*e1-7jhiv~s;ko0l7hXC30paO?vCbES z7moi>cEzymI_<;psiB^L*ij?f@A@4`#Rzb`!bDck=+c<%T%N6PiV@qLA-KVzLEg%^&WE4+66a^cy}S?5~erQ@#? zp8SICKOj7J{ENaX$A2U|{Uz)CMR?)(_D6N=P&@ue;n}^cbG-1<@h1vT?qmBk!gI%8 zCcJX|O~TV(b#?T8<;S#+<6jkCI)0Dv+VQ_={a>^Gc1L&XkUM^$@Y3<4h1ZUsD?HuA z`cKvRj$fno9lu%YJN{m+{~Ol-oYr^zds^S|-)nuxw?3v@hxE6szmM?T@rA-m#}^5& z9luoT|Bm&atMwg!wbpn1U0UDqf7ANEXZ`PJeaC;J^&KC5j65$K-%EJ<2iBi2Ja_y| z;icnCw7%od()xd7{a0#z$KS5?9j~;$`T|5@wb&-ydMU)!H!ar_|RrQ@0KT6mgt zzaB3<`Ahgi_?5Q5C+&|Zw%`9c{(NblIexS7-0}AaFC1^)b~W`&$G;=Ia=f|hH0^80 zrykew;icn4Cv@vjIli;-+VNS!lfQHRCkam-f3on*@pZy;$6qeIaQrsmrQ`o9ymI_* z;kD!U2~U!6VuW95`+Jg1KCxSe)bTxpXO15(Ja_y|;f3Q%g_n*$M|kDe3$GkMRd}*3>t8H9bNpFa-|?HY zzT@u}{xjj*v}b9Od|CMK9luX_GQFFRw%_*j?zmFni=@sW!dD63LHMb{OW~Idb-{A2 zGo!12p|pRY@IrVc{5Ij)c3u1M^;!GtQ`%nm^}>Is^=EeN_Z9wt@Lc$L!uL2s&RgL- z3STI^7M=;eKzO=+SAT}^b;2{@+WytT3)lXA!b{=dY1RJvn($4+X9~Yhc)CM3uD0Ly z%x?axglqdp2rq>nBy~;`ey8xQgkLJWcI~edKDuK!uC~8Tcq)9hJieb3p6}GP57Tac z{YZEvT-#52Y&ZX8XSUy4crIMqA1A!rh3yw>on1Sw>+?L}i-ha?yiRx_Jd^p~F1*^U ztE1=nw}hv=cf63}`jhZdcq)ARv*f%IuII^N!Z!+^B<;@LJ-TrZ5&kl5 zFZ_Dp?-X7%Z%o23J^%k*cqLrd=cmGF?A5i`^%)5V-n+jQztM$L6^@VHwpKE>L^JG4g>e~3*S|EDm>Y@ ztFP^k6rKs!_D>L=yY{Pvm#+N{!Ykps%eZeB{$1hIg@0D~CfB|ezRiB!JhlB_g{Q)` z{=?7hj`t|n{xIRE2_KPh&lJ8$xUT1=!VBU0x^s>2TKH_K^E%<_{@pzFdGsNzFI>-` zuL{qF&y+ep7rt7!UOy+D*Bw_OT(6UR3E$}IEEJv`!1L!^;kj_VK3pk$y>Ok+i-m6x zuJgZDcqM!Xng1PuZ*D)&>X2?e`$_w|!+)FW#wOuA3;(t7(L=lT(}ZswuDeb9?HoT) z_^ys0FMMCe7Ym;)T+j1o2w&v*tAwv|{N2J|DtwB}^Yg;jJARMwe{y_ixI3=bJHChT zHwxGD{|Mn596ww5Cmg?A_(tJ-$~<2ze3RpE5v{WLsk1@2KEHH7 z&r0}{q>k?Ana=6vqxVI+pXVasdfw`Oo`vv3rH=0Bxk0$jU-$F;jBtIu)BQYa;i=To z{XCPoTp!)fGj&||^UQ>2Qb+gmEF9PUJS)d_KhNZ_Zd^UjbwAH3j_ZD&+c>WKdCqiP z_w(G@@v|m(kNcjE>wcd5Ij;M89_+a8=Q-PP-OqErcQI6|=p2s<^`+1(?xbElq zSjTlg&+{DD{X8#pT=(`+2^=aox}J zrH<=wcaecU<@LtQ^<< zJU{2S?&tX>$8|r?uRE^$d4Ah*-Ouy;j_ZD&KXzRA^ZbS5x}WDJ$6qnpt@9rp*Zn;I z>bUObIXsWo0o~7Y)N$RwccQIwcb<wcb@&qlatAH zKhMf>-OsZ)h3&U{n7l7Im0b7pOim-${X8qjbwAJIbhg+1JhL;%bwAJKOmf}NvvT}> zGSA|%Y_I!yW@nM>exAu9a^26fa$NWGEY4Shg|pbOwJ|O{X8qjbwAJIJhs>U zJhR7<>wccebD&&qM#&$D;}+v|Rw+4wccali6PP^UR(?uKRf=i^+9A&&qM#&$GzcUib6NE+U^1KEP?-FDDn1 z>wcb<wcceWo)ne zdFGDmex8-%x}RsdoON_R&%$xt&$D)1_w&r2$~wBAXX&`^=b2p2_PU>E?zryfSvjuz zd8Svej_&7KIIjD7){g6bp4pYGqx*T5j_ZD&$qKgD{XBEWbwAI_aox`|UCBDSpJ(B? z?&n!MuKRgrt5`?(^DG_L{XCPWvAyo+nLDogc~*|=exB)S*3tbu3&(Xo&)RX_&of)Y zI=Y`{>A3FanXF}d-On?3T=(;=9M}Ck({-$)`*{|Q>wccK-On?gs5F-OsadT=(;=9oPLlvuCr8?&n!LuKRf=&tZGr&og&i_w%eA z*Zn-x=dzCO=UF(e`+3%m>wccu^H@js^DG_L{XCO`?R7uT+;QE{vvOSb^GvT{9o^5f za9sEEtR2_=JhSJsj_&7KIwccei`ZWG^UNLB{X8qjbwAJa#jK(sA9-vvOSb^Q;}${XCN!x^cC>?&q00uKRgr zj_ZD&x#PN@XW_W+=UFwccKwcceD>;AN&ogyg z_w&pg*Zn+m$8|r?;{TO)E^vC3)%}0CD5!|bMFq5W1hl9n>~0bW;$;YTjj%ve+NwJt z*^pqeSvMO5THEnbt1XvcwIW_RR z=XYkH|Ih#Ze8}$mo%5V|=6Rp_?QZtv8{+VJR>a}+tckRg3h@YXnBtEUYBK~~kHSw#JH_GvTgX@)NuaxWJ zpZI}C>etO{eg8)(FNi-uc}4tu5WiM=Mf_dL8{(f(o?W-v z^}khlLHthT6><1H8{+VJX0P@A;qxqr!{=EMhtIPi4xeZCI^Q2Y&w@C7o)vNUJR9Qh zd1kNo{o(U0h{NYu5r@ySAr7Bs_6FY{KF@+Ue4Z6?_&gip@Ofr`?fb*$SrCWMvmy?k zXG0u5&#dzO;qxqr!{@nEIo>w{pXV;(@Ods0htG32arivP-YD}yfA~DdiNohPMI1iQ zIpXkn?j#PM=Pu&#c`g!%&vQ3%_&mq{#?K!<&vD}Lc}@|B&vTAAe4aar!{@n+IDDRq z#NqSYO&mVYu{Zho!{<3p96rw};_!LS5r@xnCvo^ZcM*rrbCEcFp1X;|=Q;LfKY#c< z$BDz|IYk^k&pG1odF~_*pXV;(@Ods0pKX89Kl(moH*xqp$FBGDhtG4IIDDQ{#NqRt zBMzVEPU7%+?jjDK=OS_VJa-d^&vWc8e*W-zjuVH^bBZ{8o^!30>S-#cR!{?d3&2#uXYvS;E7JujK;qy#y z_Z&XYia30p`8#|)e4Y()_&m#Z`g-_0vv+w8pJz=RKF?y8uZPbwz1ws6JS*bxdFFrb z>*4ckh{NYuzQ@L1H_&jUk z@Oc&=@%8X|rrLA(JS*bxdFD6!diXpW;_!KvANBR{d1n9QIeeZqariuokNJA|Jk!TL zhtIPj4xeZK311JNXQLcHU%=;?{j=1A!{=ELhtIPj4xeX396rzN7T46K^#8MN_nN< zkHP1ee^L5?!{^x$htIS8lCOu)GyAgV@Ojq6;qxs1&DX={nZDvVe4Z6?_&oEk`g-_0 z8{+VJmS6Mr@Ofrm_Z&XYnmBx(#W#FCe4go6&*Af|h{NZZf792)=h+a4&$Ik@Uk{&W z)_4w|XH6VF&*C;;51(iH56|KAtcb(snSaaI!{^x$htIS8wy%fJGy6}^;q$DC!{=Fi z$JfK>nZD~ee4Z6?_&oFP`Fi*~8{+VJmjC7J;q%PC?>T&)HF5Yniy!!U_&n1OJ%`V; zA`YKte!H)S&$A&8pJ(|aUk{&W_G8cC^Q?)(=UMFb_3(M7J3NQavmy?kXZ{mk51(g4 z96rzTzoj1kpC){s4RQE9^E-V#e4Z6?_&n23eLZ}h1#$R1YvS;EWU=k~n;x4RQE9^I!Wu@Of6m;qy$t@%8X|7R2H6tckBFpB7Tzcw3n|xUwJ_sKF^x?i?u%6+xK~` z@{;&_lsClT^UU}0eZHmj74csxPa_do`@r?W=UEVk&$A{DpJ#R--v>U=k~n;x4RQE9 z^ZWWf@Of6s@$(~mo(*yMJhT0z59;CbEQrJBSrLcNvmp+jXSToZ51(g296ryAIDDQB zariv5`}zLxc^1Us^Q?%&=h+a4&ojHf?+>46K^#8Mia30p4RQE9vj_P8@Oc)*;q$DB z!{^x$htD%R!1ssGvmg$iXGI)7&xSaBp4kI^fA~BL;_!J^#NqR7h{NZZ9q9YR=UEVk z&$A*9pJziHKF{nyzCV1P1#$R1E8_5ZHpKVOB@eSP-#=4c5MQOdB0i z^e28T`V-%U{={!V|AT%12K|ZOh5p3h^K6L2=b0Vi`@`p1D9@5S;PWhrZ#h}N?ht>G z@|rk&o(*yMJky~vADkCH&x|;Ho;h*&JPYFcwO@8ezdtI8KSFs$e5LZ5_!{L6@%75n zgZ=z3SDq2SMtM&B2IU3uk0>vRkA4gvT~|eX^kc$^*TmuTY>30>nI7WjKiNJV^~s2z zr93ANpJzcFKF^Z)RobT_e!cRVIDDQB@h@n7dT9Ge`@sJBzVeJXe4aUR_&f{Z@OhTR z;q$DB!{=EOhtIPi4xeW_%+DV_&x|;Ho;h*&JPYFRd6vZC^Q?%&=UEen&$A&8pJzJU z&mTU|j5vIrIdS+r3*zv3mc-%ntcb(sSu4l?Ck~%yIzr|N4xeXE96ryIIDDQparivb z=!R+^=ntP~P8>eZk~n;xHF5Yn)5Cp#_&jss@OhTR;q$DC!{?cP%lC)RGbaw8XGt7B z&zd-Vp6L<3KYX4!arit-;_!La#NqQyzwP_O=b00S&$A>BpJz?{*fS*$Q|9}_=b00S z&$A>BpJz?{O7wrE?+>46P8>eZk~n;xHSycg|482-KF^#ue4Zt7_&jUk@Oh@Ae1G^n zbK>xMmc-%ntck_&j%0J$#(*>f!Tz8P&t*St*Ba6F$#onVc7%I`};Ede0}hF7Rs^z;qy!Pu@_&n#7AD|pQ&r*4=96rxlIo1t6&xY#Z^UO|^`Jf&?&s;hB z!{=F2J$#;(@+qAUe4e|NBj4cj%pNc2MLm3;bIMTFW~e1iE`vEe4gn^G9Tm^e4bOv(FZ=yQaSb;e4dSR>pDz9J_s{To&MAi%@yG4@js70sWy;y-c@1&+Jg*}TpXZy1!{@n6 zIrc4lo{Plc^W04wKF|A~A=hn93u{&=R=6^wYOaF!-@Zv@*|bwemOz;IPr6p zKZ*Erl}{;$pYzX@&k=u<@}0y#qI?(euPa|9{&VHKi663$=Ej+_ZtU}{lxMo0=V*Pc z9Q$pn@mVrhVY^EQ!PCSrLcNvsRvKANV}eQ)Qmu@OkFM;qxq&W1qw4 z`BLKWd0s&rKF?PWhtKm`;_!LCfjE4gZzc|(=i7+G=edhGe4g(o4xi_Th{NakQR47< z-a;Hc&(9Kv&-07K;q&|&aritN;_!KXhd6wmKO_#H=TC^k=Xn=#_&k3@96rx|*U0|C zet^&O{>0()93u{&=R=6Y=lO8r@Od6d96rxuh{NZ(j5vIrD~QAA`FP^+dFI67^E{n6 ze4cBF!{>P(arithAP%4BbBM#|xq&!*o);5`&vTCW)%!~hUqT!{&p#p#pXZB+!{_-j z;_!K1MI1iQR}zQM^E%@2c~->X^Lz_&_&ncE96rxlIr1Dn&-66e&*1QR=EULiEQ!PC zSrdoPGo9`G!{?b3htIPl4xeXD96rxBpJz=RKF_q)_lM6jCk~%yNgO`UnmBx(>FK^de4aUR_&iJE@Ojq6;qy$-@crTQ z%!$M2SrUiOvnCFoXL_dZ51(gF96ryIIDDQparivb1-?Igo;h*&JWJy6dDg_?^Gv_z z`@`p%6Nk^URQ_K5z79Um{P(2~IDDSz4?Ks@vnCFoXZb8&51(iLY|r8IOwaKgKF^vs ze4gdBuZPbwFFc3OGp+Odpa;pdR?p${ ztckT&)X}jm}dDg_?^DGy9J$#<| z4$tB9OqX~LpJz=RKF{*`z8*f${8G>1^Gug{4xeXDe60NooYCK(l$ZN@_&oDJ^gP%4 z^hcgwpu8qNhyE|{_3(M-f9!dM{(s{6jp(nu&>Vx$Gb^PY96ryIIDDQBariv*7y3T% zc~->X^Gq-D_3(KX#NqR-iNoiaz1a7G&$A>BpJziHKF|Cmz7Kq!6><1H)1Uf!_&f{Z z@Ojq6;q%O1>ifXwSrUiOvmp+jXZ~lt4}6{#arivb%X~e2o&|CEJZs|cd1f#7ec@$=@OhTR;qz>W!{?b_>HEOv zSrLcNGhOBD;qxqr!{=EOhtD&++V_Favm_3mXG0u5&wQuv1D|I_96rx?o!RML(rSt)Z&$A*9pJ#fduZPdGAP%2rO&mVY>{Y%G ze4Zt7_&gip@OkEc<@>wG2Lk~ z;q%Oh!{?b3htIPh4xeX996ryAIDDQparitN;_!K<8~ps?^UR3D=b00S&$A#7pJz!N zKF^9ce4aIN_&gip@Oh@U`uW4>nGuK2Gbaw8XF(i3&yqNNo)vNUJZs|cc{ar1^Gt8^ z^M}tfBMzTuP8>eZf;fDhC2{yXE8_5Z*2LlSY>30>nf}htA3o2FIDDQtarit7;_!Kv z#NqR-h{NYu6F;sEmeJ3r4e>LSr?>n0!{?b1htD%7ezo=~l;iyd*DJ4x--P)P|D5vd z9Wo#E`7ZhshtIPj4xeX396rzNoxVSOo&|CEJS*bxc{ar1^UU7m`@`p15QopRA`YKt zL;SW!%Ilcz^8MlSEQlX?q<-Bb{wU=Q@h2$H-tGIJue>0BG5QmKA^H=)7XAO;_kS1q z6aNJI6TcPxiQkF-@A3T~aFnb=LHtPN74Z|5H^k3Xp1t>!Gws@Okbg4xi`PKlu5>=Q&OsKF=xQ@OjP=htG2-ariuU5r@xnkvM#w zyNSc+Id+quKYX6!#NqRtA`YMD9C7$OcM^xsa~E;=JQs<>=ee6We4b+;^7Dt!bDTJQ zo>Ro(^PD3NpXW~E@Okbc4xi^DariuU6Nk@p?8AQk@Oh3ChtG40_-y+N{ZY=$5r@xn zCvo^ZcM*rrbCEcFp1X;|=Q;L|e*W-zjuVH^bBZ{8o^!<1H^UwHt_&gip@OhS>_4V+1X8-Cre4aIN z_&ke6Uk{&W`kd$Rc~->X^UOc*>*4ckh{NYue!X^K6L2=b3%W_lM83 zAP%2rMI1iQhB$nl*|&Xv_&f{Z@Of6m;qz>W!{?d(r|%D+XF(i3&x$yFo(*yMJhSik z{_uGg#NqR-h{NaE5Qon*`>yW~pJzcFKF^9ce4Y()_&l@k`Tl!N>d(c*4_96hpHSWq zhtD(nFW-M1`V+ql{fS?L{>0()%)amY-;Dmmzl#3E??8Xz@OfrG@crTQEQrJBSrLcN zvmp+jXZAzsUv)p-rv#s8O&mVY;&xvTpJ)1!=kR$}#NqSIf9&hw^K6L2=UMLd_3(LS zcX$q;XH6VF&*CS(9zM_X-=4$gSrLcNGr!ZpJzoJKF|Drd_8=g4RQE9%U}3<_&l>;dJdmwO&mVY;#a;NKF{=P&*Af| zh{NZZ|HjwD=h+a4&$GPS*Td(TrBl0|kNppyXH6VF&tfEUX&XyQ|1{zAEQrJBSrdoPGkc)#1D|I}96ry6IDDS@ zfxZuXo)vNUJkx`GJ$#-8ariuI;_!K9W4;f3o+WYkJR9QhdFBWCKJa-~#NqQy2m5;X zJPYFRdDg_?^UMzMec><7n ze4Zt7_&gip@OkDB^?l&;tcb(snMNY1_JREmpJzcFKF^x?Q77r&!yoSZoTR)Ye!lXC zIDDS@5x&ohwZ0<$TIK0szWzPR3*zv3*2KT1_1VLHpI<63iNojF5Qon*|1IAKKF^9c ze4gnMz8*f$f;fDhHF5Ynv)`6JM|ZDgO7M9W#NqR-h{NaE5Qon*%Y1+MJPYFRc~->X z^K6L2=b1gy_lM83AP%2rMI1iQhB$nl*^$0Ke4Yhy_&h7(@Od`G;q%On^8MlSEQrJB zSrLcNvmp+jXLhvj51(g296ryAIDDQBariv5NBREnc^1Us^Q?%&=h+a4&og_p?+>46 zK^#8Mia30p4RQE9v)}Rk;qxqr!{=EMhtIPi4xeXsjPDPhXF+`bT=K9Yo+)pLuTq{p z#`m96UJ&1e{=`f4Cw?vZKi2o(h5p2EL4V>6`V+qk{U7K1!{=ELhtIPj4xeYEJWKL` z&olk5^aqE}Gb8>Y^?ByR;qxqr!{=ENhtIPj4xeXD96ry6IDDSzSU-RGJTv0(dFI67 z^DKzN=UEbm&$A*9pJz=RKF@|Ye4c5UpFez_8FBbLbK?89KSqsyk5&+WnDUbNr1FaR zS;}kTh4O~@^OdLL{QR#{o)N!Zc}{%v>&0&V#7BQEKjJ0v(O=7qctw1#b{ZpI6CZtB zHR28N(bEx6<9`09E6<3-=b01Vq4fpvE0veTuUB3XhtIPn{w1w%h~KU}O|+l158S`- zd1l1n^UR6E=UEVk&$A>BpJzoJKF^vse4Y()_&n33pFez_8FBbLbLIH|!Qt~PiNohv z6Nk?;Etm764}6|Earit-;_!La#NqQyD|~*>&KF^%^XV9NGe4aIN_&n1p-yc5D zocOV4>iQ6e&$A{DpJzJJ_lM6jCw?XR6Nk^UCJvuxdc5xspJz_|cJwC>pJz=RKF@TL z?+>46P8>eZk~n;xHF5Yn(-VAu_&jss@OhTR;q$DC!{?cv==;OxnG=W4vm_3mXH6VF z&-5hUA3o2VIDDQZariuI;_!KXPdWTT@Oj=z96rzVWSI}@;q%Ot!zTux=bUo9KMg+5 zN;&&Hvy-Ji{=Nb}&r*3k`XbXl;PcE^OZ~Xu1fOTA{0impd1j|b{ZY!{^DLCFRSutL zt(<+Hjq+UU;q%N+mHzNb!RMJPM?HL=CDp^{St)OCtL_1x=WgW(D~HcBJ5A1udiXr& zl%pO#&r10*+6O+*Ta?3p1)pa__3(M_Kl(f!UOmE%5z&vUnO0CK)uIm7wXRaLU2A^j^ z_3(LCR1cqLP4)13rt{>y=ntP~rhH201E1%da^xF)o)y)@=ee8e;q%PSm-C`Oe4ca4 z(H}m~O8E+%4}6}D@*|YP=b6?@f7HY0nJY&&z~pzwxW9YJZt6b^ZbT#_zB_j z+)efHc^>d|nJ4Pu^URc^KYX4~pnCW`pQ3ypT?hC)r<7wo;qxq&tCikcs_}n z=aaa3K8c&>Q#tm(c|M7o=aaa3J};8%y02cBc|M7o=aaa3K8c&>Q#tMn^L!FF&nI#7 zd@2u~PvYkJByOHh;^z4zZk|u#hqO25Xg_3|WZf>+b(>ILDbJLjqr6s*eYjP5qx=b4 ze--*~mj2k!?@~Ul9QWO#@?80|w9k)}SIY7I(gFL*{1=sD-#%7(x>(M;O#3`l`M7e- ze~a={mE-H+mC6g{nfAF(c}e^R9of=frPQUMj~v|GDy) z5;xB$ar1llel?4iJRw>xOqN_o9C0bc|M7o=aaa3K8c&>llay9%Q{~|+&rJe z&GSjzJfFnP^GV!1pTy1cN!&c2#Le?b+&rJe&GV@od2XK1t+JoN&GSjzJfFnP^GV!1 zpR>Ndc|M7o=aaa3K8c&>bDQsPo=@WD`6Olel?4iJRwhyYFwFPvYkJByOHh;^z5W@cqs6N!&c2 z#Le?b+&rHxOqN_o9FZSzQ1`siJRw>xOqN_ zo9FXV-`_l+#Le?b+&rJe&GUJg?{A(@;^z5O{$BmQ&OD!&OCNCaeEy;5=J_OUp3gt> z_2&6}f#>G={A16}^GV!1pMT=(>7$Zl2E-{>*dpd=fX$=gWM(c|Kq6xp_YS+;j7M5;xE1U-)|S zd|u(Xc|Nc7+&rJe&GUJcuQ$)<)t;N@bEoI#`6OH_zv*eZ6@;ul3wKpRe)UJfFnJ+P~Nt-52F`zTP~auk}3F z`t&-_FHl|+pF{uG`+DK$2_0J z&GY#;zTP~a#Le?b+&rIe@_o$nN!&c2#Le^hX5Ys=pTy1cdA+YU&nI#7d=fX$=UaRq z^L!FF&nI#7eEzNPW1dgq=J~wA*PG{)xOqN_o9FYbzK?l6iJRw>xOqO`=KGlElel?4 z|IXK&=aaa3K8c&>^X&^2?+&rJe&GY##-^V`|C5;xE1yM4WRK8c&>lel?4|K9g8&nI#7d@4U(bId%S?~y*>=J_OU zp3nFCdh>h|H_s<=^L)O~_c6~War1llel?4Z}ff4 z^GV!1pTy1c`9a^uJfFnP^Z5_H-aMbg&GSjzJfAoDKIZu(Zk|u#=K1`P?_-`%;^z7M zu&+1ICvo$95;xE1Kl(oA`6ONCwT^L!FF&nI#7d=fX$Cvo$95;xB$ar1l zxOqN_o9C0bc|M7o=aaa3K5y~!H_s<=^L!FF&nI#7d=fX$Cvo$95;xB$ar1nB($C*K zpTy1cN!&c2#Le?b+&rJe&GSjzJfFnP^Z6-1fAf42H_s<=^L!FF&nI#7d=fX$Cvo$9 z5;xE1zxer^=aaa3K8c&>lel?4iJRw>xOqN_AJ+!U=;zah_!-L6r~UlR^GV!1pTw`$ zK85n5HOH=3UJ<`Zc|-hj%CpbNe9-5+$_wJZMt|bw`6O_>fAf42H_s<=^L!FF&*$fSfAf42H_s<=^L!FF&*$fT zfAf42H_s<=^L!FF&*v9>{|6i;`@bN5r1FaRiOL(|=PJ*>==*O*f8r(j6Mr@O6MrZA zf64d%1o{*ICi)XM&nNK%kCt`FzU=!yT6sbIiOMVDYn3;|wlel?4iJRw>xOqN_o9C0bc|M7o=kx1+{^t24 zZk|u#=J_OUo=@WD`6Olel?4iJRw>xOqN_o9C0b zc|LFT^Eb~Yar1lxOqN_o9C0bc|O1C=Wm`*;^z4zZk|u# z=J_OUo=@WD`6O&^4|eb3GFN!&c2Kk)VD`TU{h=J_OUp3mETy?H)~o9FXKzTP~aKla=_pTy1c zx!c#9=kpHF&GSjzJfA=D_2&5`Zl2Ho_VwoZywh{@d=fX$=TCjTc|L#Uxp_W`o9FZA zzTP~a#Le@0m#;U^=l^(ao=@WD`TT{iH_zuUJvYxMar1os%GaCclel?4f9>nd^Z6Uk z&GSjzJfC+<{n7gUo_Riro9C0bc|Ox=T?h0r&nI#7d=j5JPV%!MZl2G*e1G$N5;xB$ zar1llel?4_woJB^GV!1pTy1cN!&c2`}+Ro`6Olel?4@9X=U=aaa3K8c&>lel?4_w)VD^GV!1pTy1c zN!&c2`}_WTP0D^Qh##)JB0izKA#R?}`}zLs(4Y8a=ui9_^e1kf&-?rSH={rCucANk zJJ6rFc|ITD`^Kf5po=@WD`8>kco9FXko}1^BxOqMw?(5C-ITC}kkE;7K zCG&g|H_zuIe7$)-iJRy1w|%{NJ~PkF^GV!1pO5tQ=J`C*bMt%>H_zu$zTP~a#Le@0 zw68bM=c7C~&nI#7d_LOOo9FX)JU7oLar1m0k#u5kSSo96i>Zk|u#=J`C<_c6~War1l}Cvo$95;xE1 zxbI`0PvYkJByOJ13E#&&pTy1cIqB=o^GV!1pTy1cx!m_L&nI#7d=fX$=L+A)JfFnP z^Ena_wGZqc^L!FF&nI#7d>-%nnCFwYc|M7o=ko;L$2_0J&GWg+*PG{)xOqN_A9a%c zJNl;^!-Gh@0p0@xITCwZ0<$TIJ~^U;iHE1#$Cy691OgXHW2beyO}9Zk|u# z=J|Z0?_-`%;^z5$lCL+^L!FF&nI#7d=fX$=NZ1g zc|M7o=aaa3K8c&>^Gx60JfFn(&m|8l;^z4zzDnz}vwZ(4W7s2yM+&rJe&GSjz zJfFnP^GV!1pTy1c`7}R&^L!FF&nI#7d=fX$Cvo$95;xB$ar1l7uVdXXP(c3e+_hk_u{W@mE)46{B_i3Mw zct(8mWBZ8b#7EyYk9a|Rv|UHMBtE0OBK`v9HSt#|Z-~D`c{;ECqpTy1c`3&FRJfFn3qCau-d=fX$=QDkO^L!Hj4Ehr{&nI#7d|u%Do9C1G zv1jT&CvKik;^z7MJ>TCvpTw_3f8yr(ByOJ1-}n8^^GW=6^e1kfPvYkJ`~%Rm<>vWReuZ-Le6E-J_U(w>!#tnL*D5#9r}E(WRGw?Sc|JEte|V+L^Qj#5=J}+0 z^L#3AZ>#QMo=@cmD>u*Q=nG=|K)rcBm80G~pURKXKIZvUet+fW`J{UDd~THUqTW28 z%HiQO&*w!_zef9;=TkZA&GWh0*PG{4IqJ>xd9klI&*yW6V|~o?sT}KLo=@dDdp@^F zAMA7Ud~Ow9>UEjtQ+cNRkaHyGYvtG{%at!G-&gC+^Qj!(2J?K*%6Z}OGtZ}T?0@ro zZj*ZKfAf4Q$NHG(b5829KIZvUj(YQaQoVUTmE%4&&!=+aiFrPsC+E#|9nABo9P4JD zPpUW1C)Jzhlj_a$IWOl$fAf4QpVIl5=TkZI%{-q}Z=O%8H_zvGIWPK~=TkZQo99#c z3Z0L6K9wJ#+&rHP(jWEa`BaX2^L$eM{CTo(E2=lor*e2W->UWBP!2z#c|NJ$JfAyc zo~Sp^r*iZ+&nMNJ=TrGUx(?>~RF3sD&!=*H-7(Ln@^S5Bp3h5Up16<9^Qj#B$2_0P zaUYrIQ#ta}JfF&uljixPKIZv+zTZFQ`BaX4FwduQ%*Q;R$}xZQd@9Gfjbd@%bjRJg zEcW4kPao}*gVO#lllkDlLpy$G%C4FLvX6azj%w>uIyfCh^((qQ4^GDrf1=ip5ufV# zSju1O=d-@+^U#!b`uSYe@`KX@)8e7+Uo^Fky}LhCdU?n7$&wG>Z+VsuOPi?A>jvuI z+48ZrehbyVZ=n9g9X~LAQRjnG|7@WClLP#FEgzki=lRot`ujg)&(Fd*=jh|%Ek9`Q z2c`WVEbD_~j~?;%=k%l;U%ytie6*f#+?IExFF035T%i1-lY~EBgXuEmgId(ta|7|TFONWQ`f4|m0;%2G8akRnP$4xCisI9N` zy!#7Iw{-RTWXXrG5AfXseBWn|*7LA5N7psh^3l3|`J;K)9qabuuFnI~ruzu*4vzj< zKfkbjVaLXe%hspq>8G4>-t?NY&R;t{oi@zO&s?;5`@+op^upHZ^;@>h&TMZhHf)=| zXv?+>*KL{Ju&`}@`}DdUm!|dGw$5#tS(w?d?D*v?SN0c8Z`?e)d3xRa{JP7gXJ!}X zFH0Ne*KM7d-mqiq*2~%~}_CvVs=f6D9`^V@dJZEp)E29Hd3M`m|yT|Il&?9vg_=S?ifu~Yt^j!oXfxK$^j z=V==*n%O=zGrxLt0TWBl#z*$_<0E^z(d;MNek*Y%n*F^U8=8GPZeS*^qnqRCi1p(m zd%BHgzk125wRBWGc2DE{iY)2r=14u=EaNdfpY5w9UH80h14r+9tj;!!U9)B0ZHnQ7 zq5jrk=oH;ugH00p>rr{>29DnIsrRgR7%p?$v*^PG?I}hXGr98k>6y9BtJ38&^V{}3 z+q&-3HEYhZgQLoo6O&6S?U_{C)AgI@*Pp*>^Tvg4k$-=3`joTJSe}S3@1-ky=?T5` z#9lfv(U1GjH_?B>6}>%<@1+yt{kXr!#H!xv$^J!}>_6r5{!{k1ZeOy#^`GqTG1=c_ zdH+OK^k3x4{!<>`f69se-jn^kSM)b&w{YK8p3py&RsB~vG2Va9iGjsh-rs#ifA>}W zGoKiEfhGnPcjAQpOPw6=KkekeiXGp7tta+(pBQ-YCI?=o$$=$aKCm|?1~%TriT!K5 zeBdP+#Z})%SiY+Na=Y#;dc!HuE-M1i2G02T}UYIE;~>Or-=J| zNH~RR38#qrPbuLPs=Lh@sOu)j>NT7qA6PL7r%*286tIR<;2KVm z4=k~UQ>fQ)id@1ea1E!xHJk$1a0BC9 z!YN=4r@%FwA|F^{4X04A;S{-qQ{Wm-fonJguHh7T7f#3bhEt$jRs`CGQ=nZq1uEeb zaTiVz_n)u}mQdU!MW7N+5%>3ya0=BDP7(K?Qo<=zcexU%gj2wBzeU{NM8YXl%l#9u zgj2v0P610e1uWqdu-s|^OE?8A;S{jkIRR@pMLw`t5>BC9!YN=0r+_t_A|F^>4X04A z;S~A6ib*(yatWt^HJk$1aEg3ji8Y);y@pfd5>A0@I0dfZ6u5>{;9WSK&>K#Hc3BZ< z7fyk8;S{KZQ^Z|3McjYFE?7cwmlT0YI7QswL&7OkOE^W`e@Y3bP~GK9pb}02%l#H{ ze-jC(P%ZaQz!FXYOE?8A;S{ihQ^0bo1uWqdu!K{0@iQ}T*E2yfhE>(3iTRJkxMuQuHh88hEw1gPJwsf zw5m6p0`0OQ&@P+;?ZPQg38#p=aEiG9gk7+N;w~uym2irpufyI(= z3gr?`0ZTXqtl<>-z~X8+g?bIA$Ol$T!YPzXI0dZX6u5>{{ATa0*!Nw}|_jNH~RRxqkwda0*z$DPRewfF+y)mRl`g38#Q1oC20R zCtwYy$Ojfn!YPzXI0Y=>6tIR<p3vA;+kY}ghpA<0m-s>K*KB^&@_t&G|u7y$+Hl15-kBsvIH!77O>=5 zz?x@~51drqAvF=|C5Qr+TnSk7Eb@UinrES2^DOd#^J<=jddZ=HHO~UqyE5{DKALBt zUhlEMHO~UqJPTa&EO5=U!1aa&*A~ivv2@;77ifK!U5!&KQKAn z_g2rAcFE%30NT>-&JVQ9xInwRJJ2rp0_|?eK)W;yRAMROp7)TpGnRCS)&18u(SLz` z?>HUx?!QFI!Ej2st0L~cof-h7{`b6A6LAm`ywT5KmL;GsrRn|K^_8C}4O`TZZ_eRpuR+OL! z^_q{7%U7Mq2VQNBl~^xX7r5qAtvu!YR;hs|VVJ zQ=r|33A78RKqZ_a?!qbJ{>z)_zdi}4*rfjoC7fb)|JBI04b}3kTg3fKE#VZa`%fw1 z6sjehBJO|1WV?oHxvL`XpNZ_rP%YsUu!K{@{c9rO6sjehBJQ7{gj1;2aEe^QDe{3= zS;HyT4=kgGQ>>S8id@1ea1E!(C7dE3c(pa0V!eb@;2KVm4{QVtr%>PBz5YE`2&X{1 z-4SSa>jv6w^+3CD3bflWfp*~(sDx9*T{uPDe|Zv4vAX{Pi$#8cTS;N!YShZQ_7Eyp<1?U#QjSpKShOV*^?3XUyg)RsFojk0+w(JSi&jd zfxXs06Ah=(MSu8m{55*Kmq_Xnzg7+8R!=kAzd;8cvZ9 zYy=IbP~YuT{~jxZQ=r|3473ZUK)Y8v&@P+;?KVuHT{s0Q;S_NfP7(KCo`h4Z?!Q0@ zr&!&8i4snsTDEP({S%bU6RZ1ADd7~VC7dGeKc$3IsFv*-asN_DIE8B2lM(k{j@+4{ zTEZz{38#Q1oFX3BYyC6Pa0*>CoFX51l{K7Vy@XTb152Rc6ze6N0@rYgd}x0SyxJO0 zv5$mP;2KVm4{QVtr%>PRRR1;xgj1m1h77a|r$D<`JJ2qi0_`?Tpj|ixD&Z7y7fuoP zU!H_htnR-+38z@ye~A)Kp<1?W#QhVL%@eEpPbuLPswJEv?mwl3Q>d2h8gc(pNjQaS z*^?3XUyj_Fp<2QzUMH4X04w?Ns``AJQq}Zc9eoOvWGpV$0zldVnfGQb-}azUiz;{t%qvc_SKz?iq5^_UdFDx zhp{W~W$f|yF!uO+8GFJ#j6Gp+tgKi6SR5N#OMEjpyjH93<-DtU=Pc(P9xLZPv3D$v z4b544_m9P~p|SQwW%z>cVdqNswxDmc9lV!w_fK3WcH+IPcKc?UdpP&-Xt`$wM%%&O znRmJ7f*`nf0Z>(t|_imbnd#wu4)?%ulxe>DSGXG7(=plRvb2^hIvq z*q&h{A)M>DWLP-1XV}P4H#969(_y1EX#Ix0!}^Xb88$S@Zds}2o?&7BxVCm!du(p> zJ;2Bxx%7LGPV+Q$WX0f^m4io)A3Sox;E`2>M@}3(((ap~X}96tbEx~_p?4L!BfZz! z9qGN+?nv*oc1L=zs5>J2eUBD&0$R}a4s7XE(1mVYw|Ta;hSFghHa&g%c_%;ZwCU5% zKDD)Rt({(b^6E9Gjn1%T^M&iD*Kgm^sZrCq3%AWL!)1h7L);ZWhy{YvseEk>X2D8|UUX&n|4_ii@^xo0W=g1vYHo zHoa-x?1n8fY5J^l+5;Ol&ra{yKC>as&aXLj>Xd0)%8`_{m9x&wuWOyK(x9bIrt}m^hYnN_*=6Ta+oOyZLxNUBRE_r+3Rc?I#{N{zQ zbZeh>ioWpi(kA%Q(z5NBZCzM*Vf%4mUOsNZXYI1i%+IA|v)dMCmYux%tYa6}U8K)0 zn%%MN!X2BpY&drFhO}(-Y}2~!o6@okm(8~Qe*5Nav+l`sdu)DY%ev73 z{cLW_LR!|X-m-<6OWV&!lHK;$wr-a!o7tpV-Ax_`F>&GZ6oOee$q&^hmi3-}b7#^Y&Rvs}#Wd-of?{)idL18hP0FYyZRewR`97 zvy|2<$hv2H{(zqvWTO3K>G*}c^X|}sjz7A4w&xEXe`PjSd{V&n+tF_^!I{s1}zgzied~1CV>vvVlMr$&f-{=9q_9i_c z{(S^FDs#o>qmM6d|64kKr~0{f>iAtti`&oP*T=_K(s=mHbDhvD4)m`W#-Z(XG#sk+-!=A2+m5mX3#SKYyt#z}lt7?dQH* zO7Exf*Q&4oS{=V2)37dh{Q>IslhMB!q1!#--vJoAO3u&qc#e;sZpXIvdK-^_ci^!9 zzo^%b{fT*FAAF}ByY&2bT|LwF zz3b}#+x7o|#@oM(pc{Bo*KN-qI6pq#N#pVF3~bWz{Cd;NnSRlZAN9iZm+HgcqT`R* zbL#H1jGmAFA&ODYapD+{fByo9aejOp)@m+^~_>Dt&IJpPF~p4aa=&zAAGxBni&(g(&b z{b<>-q;TqeGQNI>R6epj_PF*&#lAtVkMaqx{gUBn>;Orw -#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; ipIDrWS2<{dfg1bYo-~<>LoZ#;6HaLUB zoqYSAbN0UX{HXP=)o*oGSJhfwPZv%2GbBdHAqWZeFyqN#zHhqc{9vn+tZH8~&ON~L zd7we6+~?z?pK9~^RZZHZn~?>sbLA|l%{C=R>mc)iOstEomB-ew9s z4*Ctg1td@ZIa!qjCRDi8u=t!$z^$(vS{fNAQ7h_{-wi7VN$nYEvIwbX)$2dLb6WHp zn)P#P5Ll_dV}N*bm#=**q&Q62*x$a`+;--WIa6bwksptYwFVq+EIcxpae(f4-#J^% zkv=_MR6Nbyeo_v}3Vvv4JAEYW7 zIkn4|Hk!*X{PUr>YL&OSC9d8m>xtldAx}c$xRz2vlw%=SbIoAw<63G*8ny#VOZiFE zD-FqKl03v?S`yM@8j^Xrp9@M@hYH6JnK^Q5=jHS@=M}d!n5i`PRJ=5_3iLjCX`mLx zrB^%kOUX;ES!xu>B@DQiFpk9~sKb6}=V8|=oo7Z|_gdM|$cYa+)eQ`4S05OjZw=(p ze61XNCY4z=FRCWoIly+VXTln(q;OP+eCgGj_&<@Rj_M6TpU$=9W1eOvc|)F7x;0BBSCE{1 z+GO4`y_BoLdeQOcGCm&TVF#$WM5g52c{Cx^A@I9|X>-5XwV|i*?onYe#-x!Wz&fR( zCF2Ix^`_v?Qe-wY zry=*sZo<1S^5R=jcn8P5W*Y;>gYJhxk3L$4dsNPItLKw0_|Z*Qn~geo?dd|j?-)Za z|7b7O&W$ugC;$!`9`z_w%sNYG+{(Xs0dxbxzD%iAHvd>3TsVD^aI4oI6z$N3+qs1U zS@Br=769fhV@r}VwmiO-(Rw<#3pbiQl@X;;biie^+Nx}FRi76gpSuybyIu(oj~P0~ zNPJfiTZ8*EGImOODdtZ^q`%UEoQTD=8~TfyASTn8c#!efVHo~E7X{_^3N-hLBGytKRN8W8yp17Rn$qE zn@y+_7e+BA6zLDJwg?_UvU+B@P?{U*Q$utasLiGlJFLsFf9mkbeZ#kn*9?<#9;P;# zL@Y*N|BR7xV|+07b2<_Bv-VO=25gW^cb-miS>c8lN^La455spGxoBQ8iokp4Hfv03 z_Cg^KyD@K#y_JCSqnvlE4P#d9>O3YCFM%nny7X!NSxZ)9m13&!tg${WgKec0F0$oc zBZUKx+)ETTj?mUVDf5F06J^Rd3dLUyt`&skc2+kDEmtsI-l^En2P-=+UfxKjl&1ni6l8>9q%8o%cC!#F_p3+7*i>G=V%aWR7pdMk1hKHbNSaku7GV|-S z=pQ+Z>O?rHdhUDn`-O?-%nahB53Uj_P}h2=B>Cub;b^vE1^5U!{YE%u!v72W$P9cp zlnjF2QcV=qnic6*leH*!-ruR?;NqBFZY~StxPAPcUm33ZNBce%QV6ja8tC#4Bwe{9 zydg3()v0K>xW8qZa0oVFNIYFKN7aK&epMv7tlZ-9xvAC!9aXof0Q-1x9ICBtWuA#|k7CkHa`lxGqAJ$#Lsrwzh#M5<48L-2<14{K8A zaV-lsS$XE%tPv=7PR!Qq)BHuh=hfK3kd;LpRHnYVeKpMZ;6M0>wMD|h7{piBWp?l2f6l~d?*DLArlxSmT|WntTVwj|AQ z$#iCN6|!QmF@1Qkhv`5QoOCvob-|tl4Cl~1+hk25F)vkXO-QPXWBR(S`DSHV8Y}Ny z=<_PaLs-ZTgR-sS?WwGhr7s&kWsWjx>d*G|YxXC)_K2p0FTVCAR>f1#WXtuq9p+0v zfOZaTGSB5|^`2ghxKjyVO`&;rcki`LZh1Xr&6GL=Tl5^4Y&Fa4AbPIjGL#{DIKcte z&fDZe$FM@mA1+Rh%#+7YNBLgAa9;1C(+IanZFnp;~+$x6PM5j__RPNLUJ>ANUMkfKINv^y%%~?e3^ybeiSPl8kh6ysB^HArvQn`vgqODiu$2}L#`zVCIu$}Luk$m+2;s#V8|WDvwW$5nr?Ink8y zdoPpBtXXm-zMC&J4nJVvB zfj%c5{!DT8J|%v~DaMt_*;j|0B-*d~O@;ER3YC?ujmuI{dQulm6xi4zth;@=a5=SP z$WS9ixFX+)nf(r0|4tB$8m5`qwe5Ut*~d}Qg}qgk!3nZmQ&ax}Vng4lt9Js`l%>zG zW9+af1=1&nyqSl~+50O3Bh^PK+R>zGjA}q>-^lHE!d{ZES&hsn1iU> z1)VKYuM_*GmmqEFg9m*z%W~c&%h+95?C7twqJ@R#`fB3+g@qRWoY$6Zy6HVX6GnIQ z7iN>mq>5qcd%1~q#!lsyh$S+o)OXHK;g(rIJ5mGNoMT~gbNMdzk4}yMrW?i?8e)@J zX2I(bMSLj`I?4!DER%LkPEnQ*j>j;cT!BeKLnNm?X9q!Oe-;$-Nx+OqQjoY<`=nB%B>Fv7j63@}K_geWtf8yi^8 zgAEMj#SY=e)~Spu!*nM4MXiHhmK1j>hwLGg3yC;m7H0Ay0_ph?fe3<#@WO~jK@8UT z@aIqiK zC2N>_3@Y+I@};l)U4XlgsYtAH$jDJ5D1tz$UUq3*d1P0DRVdd0zXhO|T^k#T^na>C52cf1 zgVJHYg3{4Kk-5u+0Uv!)5miA0XdRv;{(ewa3{D~92Zg26^GjGW@Joo%^P|!8!$WaT zxlZO|7|v+v`KgC|@ozX^yr8tc3yJm*@9|)OLSD&%L;rKj2akk&5gG8RybrBN%rbQ> zBK#fmAFBicvf$8hgtos7_?ZmY_mcIGd(0}*f!`(6-J{E0$R84cP5Fum9T68o2+;A6 z(ea=l1`~X2N<&#tcS+vtoIutRfvE!;w7hP(AFJ%92$5#5eO1Nhw7nB^OGU4Mm#=>L;?+Y+BV8w0 zA7g^s(5)H%*=Apr=EQne(LQxESOi?;@-+1HND%UtJF?;KO|u5QB|OR|E-hF+9Q@^* z_{4fLH${}Kk@d`u=zfc)_P#+L&BxLe4+omxNe2+MxfP$9W!pdbPSKh^%4x;G0Iq{7 z(x$E$>h_NRVsR%!nw{Y6xEu6V}}Y)Z`h$$80JBE0ln zYfWB?%&hmB-8z1QtVe`m8ctEQtbDbs@GRpgSz0}jl3BdYEd4{UAyM}cT8E*}b7SF?7w)oDy+=_5`2Ha7 z7hHui)!w}qCFXtq#m4chU}{yt3!xZhB}iz5dSOUUkGbm8{O7O2N<-kJwJqGwZiGu# z>3ojBkoruX2uO(lx0OiX1KN;?VwY$0y5#=JH~w4+=ppex^jSrse3wx#*Yhfy1WrC) ztzxzG|1oD|(tk7Oa!+lo!c|ngV9yB~1@2%~yyP7YfliUtxUUE zL)ZF1#LBk6t+RhzTi$TNM4dTWM6J)NDEfZyV37p8%>9wTg+;YXSIXeXwu)p20yt$I=SKX@BnjDQv5c^n&ApNw-K{l1Pme; zz<2jp6-JLgFf~Ua7fcv^L-O*O7tIq(S3i$ z{?ffVBgRsSp(8!;nS80Z4gug}F@e8usZ1sT-M_$P>)*j;q&U29V)xYnjODbq{FXKGwR#`yi!E;&g_)-6cxd#(mb$%`11 ztv>{*47B1gbbY_nJ|%nTaPDo)v!^l$GmX6f=}o-=5zM{7TZ$8TCGLsV!uu(V=h<4E z^vhN8_o0Dc+4;vcGviSZ@_P)W?3(Af2+q(%aE2~|GYpCFO#a0g9n9AqG&1=44bu6& zE*)-wAXNlHFe4Cx8G#VYlmVNmZ!3vB)ow+%y~dAuJTm-Jf@oexdr!8eQ$1 z7?B!3z1ly$)+*l@{@BJ&aI|J@>q z7}o??;!noq;!pgo;=!Tu|7wv;$p6tIu>yDK(L3Zz(K~QnVRYnRp#0M!@zDOQMM_A) zaATzq;4-?rT0p$Aimtk{8nc1~(~O0q{e>5V$7SlVWhX3f=pq^dEzl8YfyR%9#t(nC z+wzsNhVmUd`l6UGYA^dnvN>gq0Sl7B|5PO&DTKKkA)!bizDSsTzs^2AL&if?h2WD; zRj2+oT=X5lLT&XMgJaw(K|#VQ0eb8zLCosxYu>J2sI7QnUqH<2Hy+gYo1HQ;;CvX( zd+ayl#|cPR-a~AawhJRR<@e3q{ju#t`f=CKNLQz6| zQ7~01xoOi5PdPH%j)9i;RcwuY^5HIX@We; zvZ);;P@#l#fEc_o52Y(GN0J!O|Mqqq&wjc`FQDiwv7hx?A`@WZy9_k&x;mPk{koDB zM#25O!JLz0BB8-{rLeHIb$*MU@88C-u_lNy>|DVsw`y07cu$^my}+POid3TBA9G-X zJGtifPpUh5h9x*Rc}`kwSIgXvBhwxQ)oo7}keN7 z-*KQV@_pBZ|MK#eKg+b2jnlXZ2Dah-J%vTA3RH@$$_%boL|G;>umYNW~jF6Q~O=BsAPit4Olwn#eY84+3Ze1j6?Nv6{o zw*NGyX*#D}h4mSN_Q5C61td^dV9ovC$B9V^oM^5r_12@sHq~Ck<-FyrIv*C*b(R)KVD_mYS zfU`aJh)15mo9yndS(DPH4R!&-jy$~j{@He7`D)V%YNmqmW-`2?+S}A|k#9zEac^B| z$X^+LOCBZo{2b}$axWyMfL~bj1LOT$o0;4Ne6^)#LHO&Yy}G^hJa{Rudc((3q@zh= zH_VF->V7hq*00_3wq|jTKhj9aslxEP z8B9yLF2E?*=uMo_u*=s}gw8-(ekw{xN1}U~TLcD`blTMz6 zO;6?Ll1oXGs*TX3jp=KqQMG>8m8yXAbove6cL8vNa^9hDQ82(^7E`>y@1_bS3#DIslhjw3_qRM4j?Bk!V`-2T5i4Dq~MKQcaI>@C=?YV~WJa@z#q*82_TnYUS{K&;s5) zLkc~t%q8qudKb7C5stsJ6z6l-51fDKn;sX@j1qIAI#n=v4k9eb_I)i7UavkfLC@oa zohhvkKUik$J(s82Rp6FwN)(i21+s)wtzaaGnMam9FQO_&oIBY1P$7ZG#ego7N}5_o zMc0fq?bnK5KO)w0(L`)Lt%YO3T!ofqAQ9yV-f@2nMY-+B{_j@lP4uyhrQ^V!HLmbQ zPXN`%8YPfQIi1OY$D#GCrEb%VNb<)(!AXK2@;2DqzUXy-mm#NC`p^!} zdfTI>y-=cqkXWaS-qL;1VT4}fGA!Y(gU6F#x_Y~wM*HO=sBy0G)X-y}WOI$-2yG~n zh6nG_yLYBSvQy{xSYG%LLCB@^YfpZi))`prrL4gVirnf682a%L{!}yjLchI53d>{f z(4kjg0$4+11vq|ntl`sxE=~iE6(P)v8?Z>*ueAx8EUi3NJKz~3#)9_V zH0sn*Tu#|fBD=9QyHx=is+N6bTlobTyKxDhZqh;LGTJ}J4%NAT^1KEzFXJ^kalT4va{DwkB2LE8j^MHR8AZTercY)UBYkZzfaK`B4w-F zHzA#fTpy#c1(jOxet%NPBMH?c@0KPfezzB8iYLJbxhATYtqAmejatM-_C53%+kI-q zHHVX(%Wd^*;rAuTm$jWnjEqPh_q$#AwwEW4s8SEj3WiV`SsosK9Tl}3ClRTkW&~A} zy6|_*AE#iSuL>>F;xQ#QXdy59Zdc`Kp9R-R=ASzCtc&Zn++=fPQo=drT6Y3{GQ{#m z${FrdCb!EH)Md@!s5LaV!`@KO2hq&?>zv=wCDmhdF$|A*!Q=GKD9u>>&+&?e*Q&xS zvPp^)m>E^>b^-G8Sd{efSn`;pD680wg;?6j1<2Ydri=#Gdyg?;;v<{3DA8Z7u`55Y zjsBdtM^+eLtx$-qmu`wSCcaN3o~}zE1==oj95*2kk_P~$t$lS1N2dhJP1Chb6qEeS zjdjh~J9%;02Z-hi=?vq{$b+r_SpxoDDw!{s%4wnRpb;Y~4Z`zPHvW+{g6ED#3Yp z7gMRNzb5?<*5}p9_wTp5(e9U!ecFv8Zw5@VP<_m?gB&iX|9t43L-W~ro!lvjiDnyV z%+8GAZ;mZu_|;%ZvNzTiZ*wZ8g>%fWg zTo|qtmQt1Yt$}T%TVMe2ip*6r1z04qF`BigS){yTOVnWy?>2H%`(hB%@LILdL#S;z z7pBZ(GbKO3Z39%ok6O`ia$vdA68^$6W4-LT)w4(Q;JC57q*{Ipt}_w@y`H}<1eK2W z&yzNM)*pfvMz+-1r&B!wNWOn=b}LQ2n!y!61Zxuo-4Pr!!e7`EraEsl?6BF^%?oaM z>bWVgJ$*k5=?t%aOa11MPwV{gP5E|tSieBH7F_Z{&)^|Y>u7j58bp&mNdX)IQ7w_) zv-R3GA?GbJY&D5A+rSP3E&T3p25M%W4&$a=QmLI$xJDZtQ947HkH2rAQT3y9jPb5; zt|PAT5Pi(ZyKN9Gju{_VvdDK(D7mzK8R^8*)cYsA<9>^8pT`jBpxQ<=d?)hd+hFc; v@|&G60+C-AWiC(GO<>op-f=1)X$hX8q4<6HpHG)^uTL^qbqZ-073u!~h@QNW diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc/Makefile b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc/Makefile deleted file mode 100644 index a3bee96b47..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc/Makefile +++ /dev/null @@ -1,27 +0,0 @@ -C=gcc -CFLAGS=-W -Wall -mavx2 -LDFLAGS= -EXEC=cnProc_gen_avx2 -SRC= $(wildcard *.c) -OBJ= $(SRC:.c=.o) - -all: $(EXEC) - -cnProc_gen_avx2: $(OBJ) - @$(CC) -o $@ $^ $(LDFLAGS) -O2 - -#main.o: cnProc_gen_avx2.h - -%.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 cnProc_gen_BG1_avx2.c cnProc_gen_BG2_avx2.c Makefile diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc/cnProc_gen_BG1_avx2.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc/cnProc_gen_BG1_avx2.c deleted file mode 100644 index 3c9811d331..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc/cnProc_gen_BG1_avx2.c +++ /dev/null @@ -1,696 +0,0 @@ -#include -#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 bb2aa672a63d557c1b68f7829b0c09a204095dc9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32672 zcmchA3t*JRwg30+=CMf#2_y&z%31*fk|%Ekj9@S*T0~K+)y-=YqIoqB3|eFnLgiAt z*j}x*R#98utyB?w8>|NPT1#84)_N^f+k&sA)vIW${C{WW%Bqon@69{!+Q--C(NYYfMVpY5kFpjHf*94; z(+=VE^>pY`r!I9t3^9G3mS|)URWrP`#(G!H^{y&UTD3oCyR)u0XWe!m=6hoW6?3-l zCjSzL|3R8d)Na`A_PV=w?n&RdKXpUJYr85w1n%r>)F#x_Pe|I>o{i4Vy{Q|X+*t8p z&h~W`G>|#ld)+6KH)jTEdQw}enWCgsq8XZ~K{RtxQd_E-FFb>`2lrOIHb4(;rZptH zH!X4h|BTAPTRM~jbMV%OCQi%RiVxkjt3LGQtl#t*j(~i$NxD|6F!yu%da5D1`+901 zw)OSYLSV_(X)vt8dJQ%}Kw-HC8#Q>51}}!_Msxcs*Y>)+ZvKijVL{$&2S@Ay*3LEB zjEc7Li9JROd(dc#UOziGF8i=@!|qDAx6;M;-pax)$~f%zZp!~ZjhkH+{j})!t;JWo z6MY*`>z97G&&0cu29+eo5kl$w@WldaEnHcroOC4+mUW3XR?>O`4 ztgrq&)?$)4tKZdA0-s)SkSRlEtBcGuWUllfGXt3_KQgnBafoxA;mk3dd4^MNIP;NF z22V1ag@#jUIHwrSVq{dKryI@^!&z!LXBp1f$Xw~e08$+LIF6r*#W6wNaXegwn%6nt zl0n6Bz&a1?SobuIUCxgG%tY3Z5NbLusilXqJ$n;X?Lu7&!vL7K6q0D|{_E6?i zWK_uh8yQ9Z92rG+Fl&nJLq?HPkWu6`WU9z=02xKjL`IQ^Afw1bkx}GaWE6QgGQFgg zkBlN8hKwSQLPn7fM@EsyBBRJhA`>K6gUBfI*N{=<@yIChL}V1X02xJ|j7)@%l(Yu? zyaxUjTLT1nuYtgTYv9^Jt$`u&$MT(fC?3@z9mn%rn8?|I{}0viJc1tZ!eB?N6#!K4g^EHe{66c4U;+gUF~xA4W!LJ&KIddK?+0)r*YMdJ-9>^%OEns}C8~ z=rhPDt>=(YTF)b+v|d0)Y3)WvY5f)%rS&2*s?pygqqJT@Mrpl@jM91y8Kw0)GD>R? zGD_jRzO=e-P|GnlemUw(E42`?9NP}{a=aq89N7_TIr3#5 zF80)dq~JVc3lhtNZeh*x@V>fYH^2IVOv_n+A$nw5OtK*RdX|8ITkSI-O8R=161}hI zOo*z!p0gm@`g)c@Z0_qh8{&?>o^v2@g?}yt6utogh4Ubwa6SYSz6k+^3m~9CEyv9-xwSZg!p2;KYGz8s3v zCDsaUH<`8Ky*k;^!LH6+bTRoAWqQtfS`((lq^r{b0rBHPAbxyA@9XhHAbwIHy8C)k zAvX8*q(LC=(jj{LdIAs#zYGZIWkNtN3j%sWAfT5G0llFR(93~XmhC!g&;SkWv zgMeN>1oTEgK<_XJ=#7Mc-Y5v@jfQ~U;Sgwc3S!>^ zx_{ih?r93ZL2U4Sv3*2y|9Ck%O81Z4X6*jaU+KP0m+XZO4se4!0)44_NUXu`L9Kdw zSO#$)>Am9-$XQQk7_;ifCLSL8dbVKe4ZGksLm+Byff(P{b1MXb=O+-@MEfZOV(2!A zv-)~&hd?OZ0nyagb0-9X?k)(Z-wgrvdmy0xGYF{v90Kb1LO^{h1k`^40rmSJpng9D zoY)2d^#>rJz8wPUJ0PI`AOzGOf`IzN5Kw;v0_u-KK>aZYIPo|H)SrNWdM^ajcS1n@ zNeHO_5(4T^K|uX!2&nf#Kz$bkoOlKT>d!(z{W%Dz|2G8GpND|@uOOiQ0tD254FUDt z5K#XO1f2LS1k`^A0reLlp#BmB)PD~F^_L-_{t5)t{{R8?S0SMOM+i9a8U)n;2LkG^ zLqPpc5K!L(0rfvaK>ZB}sJ{sT^|v6P{uc;1@mC0_{|y4_dm*5{4+83MLqPo<2&lgc z0rmGFp#DAt)c+0vC;B0v{tpPK{}Tf0A3#9;LkOtJL(AxDZNtlz8~Q$|{AuNe{>lxXZVYV5 ztX%tK3J&5a96j`MPt4b57*^NVQWNsk0aZX3=_1 zHGS1s~KLsJ?a~Pjm5O)LAJ)>yaLcjK_ywo50)+kY+n`B6A&#Qe=Ts5n1R|MiybL zFxMVwOk`|ioO4v9z?mF5)+vk>p|unz12Z(j86|ZPqyr|&m*v$5Ndp=mM5S!+iq}8KKVLd6R;dWjfV0t?iwSEe%tGjdA@iE~d_gJ34|5 z?X6vH!AlxDmj|Z?=bzp|>l`U4QYh41Hho58aAk9I$&?^^H6_^5&@!d9CEPKkxw?Dt z;-$wcO`#Sf0_PS2mM0WpmX1sb%Q? zY1(W80rj&&7)w3B7(KEuH#UNW^P)A%f@~l`e<}KxTpu;$;c2KYm{2$Qyx_6Hsil+V z&6`e!ZM*fY?ZE;V4mQp$IlghuX~#DnJGV?tUp$X=X#B}w0Z+)}Nl||%oj;-O*v1QV z$8GzR$7I>F(AdzTXF*M%vZ^OS>S3lWz3Q3{twwGrg@O6d2ES`ofeIK7fp{Yx^Y7&^ z1)b%tldSz{u*Em8L&~GQWCMx`DrFfq*seGG&5-cCN(`%D~ZB>B;(|Y`AW_ykDF63PMbCF-kdGb*cgbj+o$7a zV2-0=>|mS{|6>SRTpA(;)J15*m1x5_Rja<#-Hh+WSt$4e=>+**b>HIm=~4=VX{ydg z&zzlWi|d8<#ToZbIOm>`2&;>X5h<7bzCYG=z^;XCA#2Kg;~1bSA}w2NL7VOT}V@f zCAyHV3g_xVhD*CkRl1Pn)}ydo7qVUQxJ?&^sY0hNDGmj?m`qIx-iN;3xz9m zVYJ%>Yio7k2>074T&W8a-OE7RtP92NCKRsIg%VZRq6?*}aEC6GslrxWnCccn=RsYV zu6*m&g_-UZXy++M9otfWq~>8%>dn+iJ+8MtBr3GjbvuJL~ z?IG)tA(W<5q2DuT9?`hDm3qo`x)KjybN1G0K^+b#FKk z;hnP-RW*S9SHISkOZ9F#;r^?)uGYn&XQ*QT<-_Xh95=TbCEwNO>blVls4yi+_Ap6}MbYuMIlx z822sBUZu+yxCc}@!sVOY!_iIu)xF==^?z}vt8)Kkx;)vpM3pyl`CGn=Re4WW9@(cv z8-$cHVK|>MnAd1!4gpBVSd}9*ghj&{qvd4L)Y0InN%iUJq~TNLQcUL!P)Q3k1IoSw z+_XS9Wodk}s7ynnb=9})WUm6Es%V%L=+^`%`#P$+A6hhI3QW-iC;NU=MWd&{R84TQ zUocfPkP1xG1SfkRRgoJsrV32g1SdNMh^nIDRbW69oa}L?ibh(28Jgf^A4gT>Aq~0$ zhpX>lPWCdYqJBqARRAjlDR9v>Kr(Pqpi_36Vcun!smyG8BA$6YG0FcI4b#|c+ZWG# z3Ps&oyB~*FtF>57=Mi2tD`qCvsCE|vR~;P9)>l@?Gv}bF+r8{EubNfYB-SYFcL7({ zP5;+C5zo9HMQwfUAG~UMKJcpfPBsGH8VRzd+Wi`E)owOh|BspR%;6~NcE5XuSIt!y zC)OzI5#Y-D5p3hXu8C*1p{T82d#_i`bk98WlP>E5A%@kG~Ypq|>@$zHOLh{q!D)XTD0zAEWhr zoZ*$taqQM2d=E2z&4)yPCT;)MQ#20o4smYcqFmL zafi7RhUR7YhmILK%pIPdiyzJT4s-lNkIOnfYZ1@^c6P)ew1HWKonhXmq-{*v ztE^tpT~<^}o?t(+E?kd2OElfNvMtZYBN=6}+;F|fsVR(_z&H+}^9^d$PT zARmsZrXE#IEVAtRyJO1PH-cQ0=l^C5I+o0Ba}SHNH$7_ad&*w9m%aJ~dy~oDRlbpN z_D+u4)BY{=vghI7r@qkx+N=D6_OA3F9%t_);om8Pw@3Z;XZrTzh8Z)GZ)QY};7MQD z;zudUVswtbf{!%E{vp08@dhhJr@uhZ6x*xJh85>eSVBo7Fr4t8<-CRRvn&_aGjUtbSKoY91kOEy6TlV820Z)1`5%o>g4IR;L6F*ej)gG#CZR%>)bCTe-o)t7_p6EEC)}}g|Sv*2P zUQ3>hin@ky$C5B+i-$t@G{It2;GbICb`%n5?t0&X>@s`W!$i-bSl1yU&&?Ma;wyUZ^H44kV*z$%lLT$zlrf$fj`1{8{>zwe2MYR z0{=VXTLq3+?vy{zF^q$3&~DihlXUo{6dOJ7#qnL`%PeJ)b1W@6gM3iOKJn z$1Cx5e!cq@52EDP54Pg)x#-t$^w=b`ud^Dsi49Xn@1&I51q!0EwPGW(Z!;Fo*g z>pgIfjUl>rNp_Mf9o*^DI<4ZI$X9hq&zA$$@s(0iz1S7CyqJkulr=GXvLzBALiyQmIx`FiKN5tHWMDJLeT`HRh>DE&J+G%ibo`M(-O2b7K(~^TxNR1+OOJh9toOuGNF$QR~$;-E=G_ z64YY^5BpI9nuyyViN8A+_r-Cy=874;;}bWa2i;-PHw_(ac(b*$-l=bG3%59JUD%?o zSJ%=`y{V~fYQ+{0l6mM&M|e7gl=FGy2&zOf_yWc!XgG>5Wc(z?>HJL4BF0Z=oKD{} z@%cA?z)0y#3!i1-jf@*R=dzs@7N1@_H+EJF{#DHXj>SLD;{QPKH#7eRi+{YuzuCfV zKX(W_H?f^ZEk0e_7(ah2_}iHOvIqY?!QajNPc1(EjXz`G{Inw|3TQ_%KXlyUEWYi}`-1-p+yB7g+v7Qjk7vdoGhZ_pCx2}F^a_+cUnYLeu=uw9 z2EjM+)8xV5CiupmofhBr=Vie+@$;I+xBdC2;G6jQ*n>ZYkAG%-O#B2Hm-BU^;G6h4 z-QwH+*9pFfpGJ#s`@c!>KjZoRo(JEIxAEV^&niA{$@$&RxZ#`ldBoz|{=6ypX1@9@ zzTMw6_Se`q@sq{49M7W!-}Gmq2fs$}jX$jx-}a|R@J;;uhsC%1yG8I#{QT5||Fqzn z_<7EQ|Bm3B_}OpqZU2YTKq8s(9L?oCmU2923jQ%%p5wvqqzgmKKD`b_X$|8tejXNl z6F*N_e0w}U5qvXWX}qB(?T=-g+@M36iJzk^zHNV|;G6iFuiJviy%keA~d~^JnVexJM&lCJ}IUYhD zd_Qji8h=du?9{gL>d;YQGn~9%$8JFX^SMW{zyl3%kf5zkWLP~PJN*R~-PZoR= zKZ`BCZNEnFP5d-?@V5%SiJ!+TzCHfG6MPdtuULHBpZ5jd#LovF{E_^?!;FuKpRtV7 z_}KR63ciV-Q!Kvif0f{G=6DEOeB1s8!KW8!DP85k-+Gv?H~yRWd5m#6zaI&{iJyO2 zeA}O+N5KP&hqeqONnwm)wP zzKNfG9{g;6z-GqZ#LsZXW&BJPd=o$A7T@;&Y{56jpYtug?f+`Qr{4rpTIazZPk(y? z$@p)spGz5+^LvrtoA_z9__jZ{34V0GEWX{}X9eHH&kGjcw*QvkoA}x1!7m#d-(Ta; z35?7BE)#qcKj&HeIWTGV{n`ZI#7~z8|A&Ha;^#&W{u6?4;^%pbZ;$62f^XvIZx(-! z<$u-@@#FI<$4@TfGM>i@zIlXNFK`oA9hRNBR=f8IzKN?}SbW>hcLm?f<0lq>u4O-m zUo0?jZsIDRaoMlQf^Xug*n@wG;2VF|S$x}{>jmG$)lC-P?(YMFZ{q4<5B}?dZ{q4r z4}QwH_<1*RHH>k&E{+j=6IW9#zU}`K!T*@!YMBSW+QR2q^T^v6>UdSGT~^}P>Hs`sm~@&;tcWW-5`_9dlbgbH@M<>mImL* z#^wt=js009@Lw~3iNMTLM3g=$R@lyp(zqqAj=HK`;L&Hv3@FQGq7kD|( zBmF&EO2*E9E`L|xPjmT)0&n8^y-nZ`YO~J$0uOS#y#i0+@%fd&f5hYPs=#kyoc>7* zO2+>?8MmKv(Q&{$7jwBC!{5RDp#raDKj}R)N``OtVJ8Wk-dCbjBJePm=Lo!w+pQG% zgIqpK;Pn0ur5go)7yEgq!2iPbw+a03JYG)-Jd^p)30$}8IQZKqDv>&8Rry1~zkti; z`Ii~D)7j5)EDcWoE)=CgfuGEF&J;NPw3AY`!0DHml-dMNKf z>M+<%#mx~3zRyXUMCipk-_3yf2>a%F=O)45%KWKF9p01>dZP-w6A=ng1ujKa1z<9l`%S z^FI-Mdf$*zD$j%Q=QRyGM>B5bYY4CRV!?ld`Evz-BKxyQ@cWs6j^IZ)ZfXVpbLOuR z{L2|P&#jFAxjfGLudKw@T^-}M3;QLEKOpRva@pKJ8T(6^|7*cNj{X0mu;0e~eS)9Q z{QnjF&CK^(&%Y=>&*J&ZVcht$mHCB&|7#wf*@C}^`R54!Zy2u?{3@RJHG*%B@0$ca z!u-1h{}&t&I|P3V^IsDD?Hr$f7W_TTKOp$#{cZES&y0`3CuQgXG4XsokI!_*4c}ou z&lLPB=7$8oiuuig|2WUrO2IephyOtE$ME>yD)_x@f2ZJ^_q2W`_~w0b`*|P5&qN-# zj|JbnXFh@k2FZ-id%EZx#kd(Cb3Q8;{8emU{}n=dmt3EZ%6T3a3H~td*D_(hiuva6 zQBpPePk&y4(rUqvFn^P$%^758yOzsMu07mTUDQcG#wx0-?yPo-YC1ZcqV`r@P_=d8 zny!XWV@rK2I4WOVQ_~(^0U9YY)Lz|!-;2g!^yf&83jO}GsJ6AaIgH=T72(gFhKumy zB>Y|pzr$js@bXZ7JNrx_@-f>MfeoHQ54So(u<41EO$L|zi$=WZRrS;8wp}LgFy}(1i zoE$?c(IWaS+d3CDN&R1`Rg6CQPlr6|KkdIro21#s?bq^gf-p*wOZz&>+K+Jiqm&l? z#zemZE8AbiHjST5cYeng(!2S(z~H8RBd_$(zqLYZ*vBYBjGmEKTbS0+-@jpf8>76@ zGx%+c$@qPR^*Ia-Jv#mdxEYyb<9A(>@yi8Qjvx6W+a}w&3+WsG -#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 95abb7b348c5508e58372278f7d13e0ffb9b3a4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27264 zcmch93w)Htx%a%g$!0?W0l5fb>sA2+LT+3{1&ly2ASzO|-j|SUE|_Fvb`wEGw}zmI z^n{~Udr^`0cWc$uo7rOScz#njb4P`mlk zANJR7sY$&=RkfS;4DxJLE7oqRIZ)fP{($N#(IyA2)ow=3rrpnvfsL1_cZ2m(bz*i^ zrVlWY!-qXJ`=KbE>l%h$e?Y*WE;8NpEa)8WxdoN_jDhiLPj(L`!nV_cf!>az81{kQ z8zA}ydOIQ1KySj7lBU!JQ7e6&m2KoWs^<7>o$OyV-@mFlXVnKK&!`RkB^#azV7@ok zP_g8hedJ&E@IM=Z3Dj=d=k1P#W`*1WI$j4N~*4rs_T%^>Z_z`wNy1oRUBPY13lC=cvA1N`h8mg&?L!Fk9D56)bkF#B!PWyGde$FAB-{x5 zVk7r*wFXLWKtr!f?Tmly1xq%@=_y;HD+So8$h=9JNysdwAe@5C4$71wql0jo zaHb2VOgI(7sX|5@oF$w&!kH_avxPGc8Qtgt;ZzG}p>P%pX9+TkC58hW!+Qr~m>~Zc zE*vt3Z#=FT4qNwzT^oK#V~2PdV&~K|^zrTu60$d8-Y6Wn&E1=8bja?0JAj2l(aNnK zbH)5!(HiVdN!<8Hsy!UX5vjwo_Xgf2^GY_}cFaiK55^=4(6@<7ncpF!L+$s-^bv9Z znVppRBQiQ<{{tCK{xdR~d=ME;K7@=WA4W!#-$zC_@c}ZL{5NDY`9owh`3N$atT6kU z96&}lk%x>Xhmg_aFfy7v3>i%>Mn;oIAfuZYiHs(nfQ%-OK}M6uA*0FTks|?{=aO^nMLu z)j;ppA=VD`{u2bg5IhR;_(1Pt5cpp3I0O`)fPli25K#CA1Qfmr0flctK;hdEQ1}i6 z8rlH?g{L5(@H7Mz{ucxkc0xemyAV)#1_BDZAkfgW5Kwpy0t(MVK;e53P5K#C51QdP<0fhkwDC~hiLwg~h@FNH)yb1w@e};g< zk0GG&8Uz$xhk(LQAkff02q^pu1QdP>0fnDIK;aDtDEu4(3jYcLgD~}iF zfx*Q|kpJSuH@#S}*w;BY*&v_7tpM^vp z=v@SX_*o2r_^E+Fpe}(x+?@~6KhRqX@#aA9QV2xhG6<+&00H&o5KzAm0_qn*K>cC} zsIP#4`XvxhUkL&A&q9nJ=)DvI>X$)4{c;GXe+~lbS3p4hN(iW51p)P|A)tN@1k|sE zfD_k2K%IIHb=sbwUIzj7)eumxhk$wm1k~wq6zYu-P;Y{O6U`7%Z-IdN8VIOg4*~U7 z2&lI~K)oFT>Tw9DcR)b>28dNS;(&m90s`tu2&i{KK)o9R>Ni3_eJupk*Fix2CJ3nC z46$~g_ZA4KuZMv8tq@SBM-!;0AfWzv2&mr<0regTsBeIPdM^Z=*a!jjJ0PHbCj`_t zK|uX32&iv{fco7KP~QRp^)Em`{U0FUL>~myw?aVuA0eQA4+PZjg@F2f5K#Xj1k~?` zfcgUvQ2!D{Kkr5P*?SQ|pX^>VCVMZU2L#$iM=R%yn7Kl zdc1p)|JT04%)N+iE6%26wkdOz_@h@)pPf>9N~KQ4=Lvk?L;V!Y*#dm7#HSe_H_-#h zJ>dSU;in2c70k;I6@&|ijrQ_S2pFI*fhC>~Z^G^}9Q zu;B&aqT>7z9pxbv7v<&W!&rVWgoJB;2$n;^AaxBXKQEXo1p)!`AUrHIrVx#)Z~_RIy9#uCoecQcLmo^fy8;c7l1VoO%s;J3Gms=H$b{xj6(*4`9bJ@ymT(; zHJGdA_*{q2o%nnc*z@?jkNoMLO2uKc2cK_!T;s=fC5118DY~DYj?Y=hx8d_$V>e++f!A+*Gw%2>&lgU92uqpG#exs#Eo;28%Id7Oj`0#;J*^$*D>;6D@fv zl$xx45k2^%YVo-QwO8ZQgwO5xY{lnmz<1&EV|;#xPyXLAKD1swjSqqgKIl2neeFV? z=HfxrSt&*9k-k7r!iSFCF?U0xv(&uQe1%a;EmAe9C8{>H6k~L5smOfKIo-*${Nr19gZbldy5WL4R*lag@K1IdwLcNJN@C<6Rw*8(Wgik(rT&7bR$& zBSoAPjkZ1YnLxyd5+d})FMOxHa`+=BLmSy zELjzrCSHMgFzIfP!-nWX79N8O)Uh3;Qy%w`c#KR1f8H1mtmBMb8f zM{vf1bd9#)Hjt&i68+1qj~epuLR6PdZkTpeHPi{D)S^-RguX2MmWmrV*d{_w$#6&T?1fYCj!pna!J!@@X&E zfMNo9OfljTzv+?FU4lDg(Dq{eFqLz4&9YWk=Dg;Z|1jHGV_aa;Toi(yeyR)x@~I{-FCU9Q z1;e^zXcbXS(+_k8sl0)ZKmlnOWM&T`c^V0ZjbOvZR4`9Fr`f?b?jm-05XrmyLNS%M zg|ciTKO73<0Yintzs0qHvf4s^#s5K8d-P`L{Uk8@HA98|x`c$ufA|Yz!zTX`u#`zBmm zWeP>!(x{x%5(H_0VvDOq$^k~HO^PdWh_h{a3H#HNyXJM_!6h7tc zMd40UnBvhlnLbk}_kNDT1Ex@+3)@VgQWqXKg(_XxVG1+7N1^kqDa_Ws^_#+(-s@=R z2dW75D)bdS5933RP$$i}Zl^5gzee5Vd3cO^I}+1*Gq6yYCb5_%mE0cwIx>XPbZYe1 zf{vDW2!;OytYEF?y-(Rok)^MG%F|v@P6FNg>R*C5<6DU;YBsp_o43#dw(^D%9^AU) zHd7pRR2L84I;ycjd811ZmVvETn7We=qLIMXW>cE@jxMbjwMKc9$%(+$hEdlmZ;HvU zGOSWlT5d`+&w#z)*8R7d;vGwLv7d`C*Xd#(7ys`qy0~xs3EI(0?|xIw<+%5>F7LQS z75@qha$FBvzzi6pQ>7V2wQ6?~PdXt4H3RT#m6RIuhPAcg3i zNd>!v`JOQInb{h`PGvEFLrn5yB5-cV*zBmtWEP=lYC4zs)g&AIYPxUDuF>t@16;Q| zfvvB5Jd@djqG|W$@B7uPe=EC2TYnF@wl4kuJRJ(y{ZCu(iTKs@p6yq2$EDddy4@Dw zy4~UI`(3wYGOt9@^y=;h{A#}Nbasulz6ZFr{wcO`?^~J7T__ssUwq%M=7Ev8?N}o* zsPo`7znX^^`_(*hU3QI*)dcViUmv|QlUa|VWc)VD&|_pDz3MwkHum|qfRAv1SKX#`5KD42L-t6=)Ov8FP#j; z8kN5avr?F{e)^YWGCzZ2@eH(nwJ=X%KVRv{WL|)x>A?^0@~heN_3RpL{W;*;<8#@@ ztFLD=pFq)A|M3C8n%4uk9b3I5ozZYzg-=_8>lmG#^c2J(NqM8Z$shWJ(IDsf7`MCQV z?*ij7D6`USP;nHBR_zH~izcad^dR}%3G*gkOl*J{YC1l+t0SSCR+6U(3)0z6+?4|A z5b~b)pCg9T2_-#h2LruzEwwR7i0=ggYX8Ea^+OU}TtL)Y5! zS!Hv}W@pk_w|sR=GC`*!Wo71y4E=xU#TPICtWta|LZ>ElG*Z{SwyLb2e3Ro3at8T^ zSR;;0(6{8ej#vU&cutf!vS7eB$(jR>hFE>PA=Vj%9aoHWZu2cv^fDM35E z6Uo|`@S2xUn(bJt_OsR)-bU8y2CYqg2+$V-+8TW8hqd$5)?U!QE%CF)zFjwHZ5pfv zhXw8odfZp?ZZX-@BWvs}^RYLA?X4QLce=6nexBH)vD5bS91U$R$JkAIDE#pE=r;-v zhi=jKuC|5kOWPN=pHIhS33D!pv&CqC%&x4`hb}7npb+aY)>)T~ zcj^O5-E^X^I~I+#H>gB2j{b1am{f_Dn_|)AQ2yYM6P+O*tylEQ^oSi?gq|SZ6}jcXUM?J7YIQ&#%47*9Yp3@vx;~?IL}ydwylbko4J#jt+4&C|)|#jTwWV z*c>m`L$lNjhtGbPb8O7a!!_7xY>n3?)p0}#xUKQ_rii}KT=JAS-VJs*9dOo!Rc7|w zs;N@Z`mWAseY~}+tzB$8(~X|bJxkXO4yHS}vz&S?jE=aO@IfWaVmd1HM0d3(aGDlt zh|o!}iY5>NDoU|8XO>^MniWE$VlOV~k)qSgbj?K`-Z61Dvc(2Ao@n00#$N6eg&K7LDR&`Z{uTt$>tX4=R+EiBp)EbFoxrH50`fc$n~Mu7T^y(N~Q1>7E6o5b97)HPHZfyki}Ryv7U zM$DErTu*4k^>&mocH~exUd5&KGNBbrp`WFKy*R@@4Wwx~%a|EGgzsSFStF4h83-)> zYfyU}3!}NNr5*i3JR%zPc9h9 zR>`p14r5Ei6O-B|ASYq;zlN9UTZDs&3Hj>06B5 zp0gVb?ihUAw1Rnv$x7cEF<<4)@wQlbVqG~u7|PFb$#}dqQ9gLvGtZ+kJ{e(Qc5Ip{ zx}OZSv7`Iy{6&k-j+9~^ryhG6>1kAd!GZK{!WrM%k>14Of^Z+6Z0T(?`cTr3@#l>g zxiPS4cqsVfSWrwwjw@90)cYRZInGW&dSuR#g7j3KBL(>|-mMCn2k8tLU%_BqKVWNo z64zETUcqJhx`;ox}XMe|=}949wAO=f(bgP+GZUYXHJ_}4Q2mV>Wj{B6edIWY3~Fn-X%>9q~= z|A>R{VSFScC3+2k(r+2BaPXsyuW;~*_;y70I~@E>#`_%nvyAU>@Hpf98DDGMQCk>a z1xYEQuS$J`@f72-E`G%LHpb^M|BsCCXM7~%MF?f`pU%7~>BD}=>5NOLU!!Z4TE_S) zNJ^zfsAk6d7?-%+$ap{FWz2t!@q>(u|9crXKON!Jfcft-9>G^sN)dgf6 zzg9W;XvR~FSF;_mOZZDX8dW zm+TZ&CD|a5pgBFtstcN5OEU2J=+`K9=xBsd*&&w!KLH~lNsdJB1}-rpbtJF%!Ef-v z*ZJVL`QRIT@XbE>JwEvHd}FX~mqR_eThDX0M*6!CZobZg0B(u&RE5W`oOS$IowJU= z0-(;l$qrg{YX_!7n!Gfww$ zf|fFV5#w~5pNr3j_}dUlI9t|B>=K(Tt1>5OnocL$sBmCPKmv+Cv{5vfE zITrtZhu_EiuUdS1b`krJSh(%yF2~NpZ07}wPyg0}*!ii$-^u)6`0)R?!{5jJzgheR z$cue>2U+H;f_bC)mMZu@#_5%EN`lLC@L3N2mZ7Oy#$}w(zSi*Nh?Zw_A` zJr7uX+x`)UKbIf;g8Up#)wcZ!jEg@V%>T3xf1$${e=fH8wm&h4zm4s$vG}$>DTjZ6 z`Mo~;uQ>b&f8pKc!++7?U%~uWExzsldk$avd&Gx72G6IIWISd3Cot}gf4Re#@t@_x zzuMu8Kg|~3_WxFgFXP{1@$K>dlEatrf5?Zw)8WhbKj*{$rNfu;|GmYx{r}M6Kg#pv z@jmU2=VZoZ{J+cmX+HdZhcD~*HH&ZiBY&?W_TOatMZ9mh{w!u(_%dIYSbW=llf#$z zX|?$FeBJKwC4TPk;qP_$;?K`5zU|MS9KOWQL5pwu6XN|$`YZ8M#JD>?55L>ti$6UU-|p|19KOWQLl)omXQ#uL z_@S3;D7o?TONTG<^J^deQHL+_Q%nQK_HF-9Wn9K{0+&y>__qHSIDFxmSBSIyzmpye zk;MKY*1wN&cYa@Y_!2)qv-q|@!})+s?8|(e#JFp}!r@E&%(nQp{RMm2`1y&& zx9z{<@Fjl!=)<4Mhm_J^@u!+`x4)M=e2Jf{Exzr~4Gv%8r`w1BWrr{E^RN%U-{DLA zyk_z3@%*jBH-AZhe=^eI+x{1i%G^(SX`qlsG496mQ+OMXl8mRs&r6KEShZT}x|_}e*t9`xZqVd3`q z13w<>xGFaxrmwu+YP<@_X-wqsOyeihKq0aDG@j(=FueDv6CD#URhOq4So146PeOi| zqV7<;2?CMm%!-oWZ}9iJg$7RJat^h^!4L8Glgk{O{<$hjtBpw8xsvTSIrzJ5C+XmF z?zhgt3z)yr!ACN_#ldgl?=$y0`0tqi6$ihK2X(uH)9;&<9y21{uiaeU>ENYYe$K%^ zVt;<%;B7oU|Ki~9a#^Iz*OlzgVTYfNIi3gMFXVEugWt#FFy6thWqgu@Kge-g;o$W9 zDW!Q1K8wps9sCD84wpN)oZpEQ|6gE#s(4nCI4PdWHxF84e5elGvS!O!OMzdQJ|9G82! zf8ys8?B^Sd6OE@zkDJ_2g#QZjk2w4a&Bi-XtStOB%qwMF?AJ1Xj>CVJ{a)zsFJb-) zhyPP9U*quQJ)|`b|6TUK+u_%<{d*n$bS`gm_#Mpuw!{A#uZ!m$ejoGqI{fWCK5sbu z9n3%E@XuuXM;!jE%rE9RmGS=um&db|@!!Y%DGvWU_NU6>%kM{%mmgS2Et`@DDQnki(bz*^>_c2=ndpM!GNTr+0qL`dYzu#&NyO7rUuWWnB1jAE|Ko^u89Qc@Dpi?Jslqvi>i3 z_&b;{&$HqW{n;cX`Q1tU+0Xok9Q)%Kf6}qPiv5)F7WDtKK5nD{+F5msKZ~y z{GAT}M#lRczP$JLYlpvAkB(A*bog@rFn=UJ_Ql4!@fDeUAMq#=q+DS26y)!#~XNJmBzC%zwk- z=QDr5!|!MQpB?^9x>rj5&Ed;UHB1AEB;)CEyp4A7Ej$jVFiyoeTGL$EEp11>OH$29 z<`AE!N+U;o@Cf6?wfU+nv91lTibEzljck@&XRNiZEJ=SUP}WeFtW#yH6ZliY&bTS) z+J@NbuBK>9dt)3Nov&NHx--@d8Ywf>S=Wv~iORs}pGy)I`iq3J`gmJg41c0fhJTJJ zR)!b1@zOlr$Y-TkGyY15{!Ze*n<6kkVNH|99Se;- zc!H56NSBvq`XBn5!ZaedNy5u;J+=)2srK+83LtN0*e-w0!e#*gO69lvG3T$`lv+BCXiT{x9aQC$m; zi;>>1&Y-JO6-K15F82!5;DbFT$`jhoF*2j+nHFG+X_yu_E&NH z@_sb6Pe0AL?XL$$HpNe5b?V`Ri{J4+CAhRN@=jFb(r-G`XxMucA)+U8tA!a2bG?uC zZH)4wC-|d`x$*k|>&tV4@TLD!egv6Z+1g(Qrw<_ 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 29fc76d27930a91975d5c62e5f323d24887c427c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43424 zcmeHw3wTu3wf{adnVB;QNd^cAf-)*#KnO{Ahzd9a0)v7g;#-`Ayfv>T6O1n$4WXup zLamBkTjQfjt*z1eptgk|8hq6oy=twsH9i~Ewo#FCTQ&dRT6^!AGbb~Nw)fue`+pw? zX4c+ot>4;fKh{3`>~qfK>cZtq9EKtE;SdW1JO6N_&5@pBNAwjO~Rj;gg-M0|HLHx{3QJ4;QR5hA0xp?0V@5I z!uZad5I~CZm87(Ybj4nwXc)&=TqKE`3}ynqC7RtzIM)^LV0SE zeOowRKzVA4eG$%|NO@|4ef6Brr#w}CUlHf0Ql6^3Zzb}1e_7V{@IK3Vu*m5u<*!IDtjx~FBz#ccu z{x!Qu)ZddiAws+zl+*gV4?3YAY#SXV%<|Ch?_RU-3P3U^ zh<%NqWFvUZCp6c${bt_R{r$ncg`J%Ru(G%C**%hWcY(IBR5W{K!m)n*rdHC2ch5o0 zMfIKmM(=ohNm+1PaMS8%I)j@FBRk(9TWx!#-ept}aWfV%xA$CPv=#OSTdwLAO_{rV z;P<}w6|B94uiz#~+IBxlGwe=yDt1jE`62=-(P2^1ED~i8@Bw-|S3(r^;TbZ#x3H%J zovSL>lnTbdl?wvm}VV8f@xW|6;X%x_U2IyhD8~>pBxu; z^LOOtH4t^R(x41>wSEU=OIK?Hi0Epi&Ot6Lb4?&YUDsJrBL~UIJd6F9D0eYLM_EL3 zqNqv|xhf$7H$3|P~YK(2}s+zjZUL`caLZHL04PhTYC%lgD>_~NfX@llcI&4ON9kxVLh9~ z?p{~hQ=1C+XFk56kQy@c@lN9@E-qp%?sxx;)rsbQIgECYtuHO2oT#XeMDIwEtr+U4 zB*oNQY+-6p#rT)N*3A}CteYxHba_HiJBdOAJ$R__Emgxepb>4*FaE(bwE3!=qW7mKbhfTdRC%5!qVhg@h&PR!LmaITmw^;~VBmi^$e6#R)~+FiQqHK@AfvJ+5tj z|KG9R&xn>jc_|wBYlvD3_Zux&?RR8u+-!-8Sgg(_#n+%%zPFXm5PbrPRY>$0NUTPp z+kwQ{NC*<0t3~H)(S=%c5fTiiGY_NIYEh{cl_SwZy>&3y(rKu8de@Ngq*w`K>a&B0 zsVvklc}#7UX1K>EMqA=ss^EU0QD_fJNRe^1d(&C_gKgbGqm#}|^xYer-a+=C!2iz8 zSqX+zt+bM8NZn)+*@jdzM0*Q)MgH;C@lJGYTG1Ep$FrGFY$&9DU?1EAhxJE)k9D_g zuw`0&uno5TK()Y!maFZ1TG+I^Z2_t5nr3~9>Ew+eagOJY|OCVCC)wwQ`WTYM?@ibDc&5>lJ{$hWu9nzz7 z!)-JG-+)NXk|~)RuTD5p?Q3`_%BjmKf}^Z4!_8jpG+_rt^>6ZwxnV>5{+^5-og zTU0y*k&23a5!4{w5zAbzec{QRhD)-^{0K{7w(uyhh-~3;EJP|iFkshF-z1*Qzy8$T zT7ymITckEOifuA~3?daGuFQ=^sF5x)HkrRcA#yzwyIR|!Fs7^ZE|A==*1Ji)tMwj` zqOR6^L7KZ-e++_4fcrqUceUORg6o3qAOQRX1b_!X0Qe~g01tuy@G}qqehvb_Lm()q z0|bDFK>&CJ1b|+v_2mrqZ0pK?v0PF+- zU>67q>I4B`HwXYvfdH@v1c0YO0C)xjfG!XK_JW|GXF&jX4g`SbK>&CG1b`Po0QfBk z055?6@Sh+ks2c=;mq7q{1q6Wq0s-Jv5CC2S0pN8I0DcFu1zkjotP~ZTy|LgVR>I)i z{5J$Au1p3wLEV}>IBx`6#e~luoX+4B1SghQMHHD-eBvcmnzWH9GIK2=TV#%cNJr*| zSY#?M;v!Q!Vmuq~OM<1=)qmysurIdgyw@VKMQ0mCDmvYn8yk{GXOXl)CotvcVA1*6 zUt-SC?w!2I+fPAv7?;RPEl=jg5Df@5AH*(xT|p@R6*jtB15m*DSqOshQ$Xrnt+d~O z@v|5N906!fB@RcBd z)BXwIt3Uuh6J$(R>uM0d&jJDbY!JZD0Rf!$O#nX+1n~1g0KWhP@C!izUjqUsE&>6Z zY7RI}Pk5d`os2;fa1fUg4q{8A9Wn?V5Q{i3ec%aH^83XtZm)+<2( zzX}BK^&o)L(gg4b2;kR%0Ddh9N^b!Hd;BM9K%1p)jz5Ww3&0RJ8c;F~}I zza9ke%^-l^00Q`pAaG&}2;f^m0RKJ+;5UH){sR!eZw3MU77)O11p#~;2;jGYbgH?? zHE=E>R>HZ+`1s$Mi=05KxhQMkTto{6%tf7p&qY^%#5NMmMfX}nwz;Scq6Bl1^1?P3 zNk?cdvig!>F8X|5%op2SG{)kKZ7%u>C^Z+EgU&^-O7k=qDMtsJi^?s|*j5UgxI~_d zyzz4pomS+ebu`UIYoj*y_I}vg-~ZemwO#9X(RS@8v;~6g+Q(EAERa=Uhz+^$8C z)5!}VPusP~g=MY@WSDM-*m&DPMmAgQ$3%T3YOsi6+qK!JLv)Ts6gy*uNHotPifz|M zNOY7%6o~dlCyCrrG{|X0I9MPnD++n^DRsU-t7Elm>L#*A}!gr(rvMg_OZ@fMM-RmLYQNw-SklD5B}v|)a0 z5!o8%k%S^{m|LaD-Z0V9bclx9uKj`(CqohI9Q6G>taCtc(xt7| zN3qTULCBU$W|?G`OJ)TK0F{ziC7BmX<|QD_7{=CZ*$?GXU$gXCIxcoDcn`6I8GDe} zxmlXw@jfvcsAE>4B5Q!A*rCgm__MUymc>cBosC;B7~;mwoA1VY(>8AUEh5{vc^@Ku zl5Rl(@lIGy(osL?9Bp+)o}=SjIo(p8E#kr!k!@g|2a!5QV{4Y?S~$av6;tG4mMd*o z8q0Q$jvHrBy%RHJ8)tupNR2aW&C)tqml(U6pHJPh6N=cwqAgY49L-09H)3ZYaUIo<{?4K9|O;$)sDe6{MI2MU28ejO8NQcKwVlIw-Lp2|wLC zIDkZi5(kmsdt0=n%EO4ZR9Ts}R9RW{D`f`~tek=bE4z^>BFiQctelEOge=pRDl2Co z!OA`)Sa}2zorIz-RaT}gRaT}gRaQP6305AD1S=njgr6+?kznPckznPCNU-u`Bv?5c z309tpL`2`77-DO-1&tRyZQuAu!~i`yf|))^3?$x~Dni@VMV1vW3U>5UKD;x;4uo zQX*|oh^W>YY%>4i4>4zKllkFXB8N!Qt=Vl9BA>zrh7w)P&!dq@7xK-Nplf*E_ovJE zKH|`o`!pJNwgPx> zssjl|J%R+I9z}vtk0ZgT9Y}DYPa?snUn9Y&ok%dM6A4B=g#@FXMuJgYNN}OgBEhKV zkzmw|NHFRpBpB6=1fyO-f>Ey`!G*q#1f$+Sf>CcG!Kk;8VAP+GU{nthjCvP|X*wMB zX6(M$(#pCS8yAk^%^{ao+mbJ>96+lmux-Z5B@G7xmRI$IhvOB$kBvOr@~Yh;vV~(S zL^>R=jfLaD{aCfU!rgbiS3-j`SwMdJM$8l2`D(Pq6I($36DSps2oJi1MWZBIUA-dB zQ$Qx(jg4Dfm0Fy!1!NnS$N`D{--}QqU1Dr?^(X~o5ftU_C@!vPcNF_+t4Lk$j$%J; zHFEWGcNF_+XCsIGG};}-3jbUX0BCmv^xqw7z6;?9R*+=2mrJ@ih`O!0HEDb04@gsfOba#xDo^a+8qU8 zJqQ4_J6bPyM**PSQ2?$50f2T#0ifMc0BCm<0NNb|fObdqy^Ts{bJGeLlx1p?e`5EMHH z1i0ftfSU^f+zBASod^QlNg%+@0|9P62yhEPQ0&Pdzy&~nTL=PN0SIu5K!95e0$d>o za7#ddTMDurfl1eoZgsb!J9e@rmfi=6n+?uf|Tuvw&8!!I-#x#Aj##CfVTY zd6_|p!rvwBB?|wKfYR5G>*LFeJ=)_88XwWq6w~o)z+f}b8jB0IsK3@CvPFFbL@MeL zgU!j$$qS?nih66aB)N|4?vAyG?VS7tL@MfWAB4^@s5!UJ_~`WT6-E7vQ0!`L{|Z~& zczyu{qvmdqiFkei1cT>Z5Nx9T7zAVJK9JR2t@ndqC~XI+#`6mx7<3PS0RB@Dz#jww z{AVD5{~QGHhd==D00I1A5WpV+0sI#raN5Ws&0 z0{E{%0RIgLoY)Bh_%0B@J3#>74FdR6Ab{@y0sLtY!08Ecz`H;I-wOgKo&^E?IS{~~ z2Lb#A5Wrsq0sOZhfYX!hfd3~5;N2jAzYGE=UI798zd!(g6$J3tKmdOo1n}R10R9FD z;J*g}{7n$R{{R9f-U0#qk05~m2?X%BK>+Uo0sI{hz~2P{oSwJ`{CyC>KLCLfAA$h> zXAr=9K>*(e0{BNDfPV}E_$MHM{{;l_zk&e%HxM|{2Lkw~Ab@`c0{G`3fbRzZ{0k7k z4}bvvcM!l2f&l*CAVq4<@u)e+^0WrA^qdp7XZ7}PG3Q`XA!(B9^~6tW@CxJ|pjG^j zkKcRU-Glg7PiqVj|I$XHDd<{@$hHEhfGEKVM0pW+v92AV6-bfAmjo-2mtW-iurIc` z=zv9Jn~VMck(!H=-XY}`$RpAQ%|*)5!7kVrTS~OeMO9p4qC2Fqx#;jSF&72M#^#&* zaPMzN0E}OrMXR;8-{Ga1&x1b>w)F+u{;|nyOAWR>l>)C))Ce-w2>Lj7)*@EI5%j|s zU^`{d5p;X)qpN5dAZ1V{h-(NUPiIEuZ+%c2E^~A%&(8ycmyY$X^R4FR_Q?0e7M`=Pt$*R!%i0bsJZo9oYYSH| z-#qEuqx^U!Z1Z%YXD*-eLEayNyT5YM8+N@nKMTiO{}MhjbHWBHS1fP)XnEU##jw$z z^;WQDj}biK>wT zfQcN9&rk6A6vif_0Tnyu&hlj+7L)+l29Sm&fgL zIGri{4?a`*Q}H^e;Ye{B;8G1N2ft|QHC#>)Z7D;|B8w&s=cvR2r7;;4@4FigSc9Up zVL^<5&xT7fqVlM9w5ZeN1oqnB@c-1v>EaA=PUM0} zu_%d@S~LbtqV&wjXfZA_DUv5$ZX8X-haN3K-wkq{Am&Bp3$#*X zktmET5y8kZv=#a~$uTZ6J~BZZ70DJ;Bgcv95uAolq8B|hN{q2%Fh~bI?E3cn)k7SE z8vh1DdwJhBKZJWjit}cRyqO|@rdU>8T~<+C?O)}eREn{jlY`$Ts4odsl+}jHtE$Ty zXOz^gY^W=lQQNS5@ybOZnF|#x%@3`b)EHWL_PO~vmEuydsJOPaF6=L9C@T(^`Nc6+ zwI$U}rDgtkjp0(fU7u6AAl1UGs;L1JuiZ1B>W?jTGlN{I(+$s>z={r^O-=4JKWa72-&j#Qt**AL zaav7r^YZ1ZPGY1D<|hU4=KDi6WFXX77S0Qm)mP2U&Mv7eZkUocB{5Fg90ZqtJR$AH zQT1o$qxvhP*#QcW&kdn1W&fh}$inP`|`@NXWw#5NA&+#cT1$ z`Df-$S+HO>8MfLjuWRsU!?3?@X?!I_E!chB@!EDtbQ>R4zopQmX z(&MVu$ckI-QyQIR?S-m}TGaaSZNKRVdri+P)kUQYQp4D3&5f54<%1n=(k`F<=;?pxp!oR$J&HF!Jzs5>Dw0@1P z8|>@eL+e+*pg6RCwJhY2#Hup3*gUj;rR&jezJ5Jku1Np=we1Om7}D$Bgr(#uWOPxS zD~iMx(JA_b-&koxj1Hs6@HqmGdPlpX+aa8}&LXGyMmo9Qzz&r*R9Vua!Tr%*59YJh z=@ZH871Qx2t-DocWs>%Z*NG%-L%U8#f_5IL(_`5CB9V^I)?bNr0&#tsOsC$`@5y!A zqhn(*oop@p{^!Hx~y6|Co%v6ZJuKxa4 zLC^URKiLQRC}*oH6!BW!%vzzb0V%NrOm~lt?=`qQAjMz@NIM~N_RUS7=@y_ z%u=wk;CICYt90mvuD3?c35mSB6?o({NZlSdj9rPOvbTp>~m}-8J%4@%MdGw=vbm%-DsNwnqls=wO z<-BgsK9$c_a*6)m|JJ`_Z!hUS)vu2$+NJ30ihii*0Y%+vyo^?KvZ8Y=<7nxkMJM{R z@r&n<#S)8XB*9w8Dr=J-AO z)iH4{^qq!#DF&O<;i6@3N{S0N0)^9b)dTK$gVb_EtY#KM&G7`vaO8c5I1W!5%5nUe z*fU#*lj3=kOqrh7h#2nEIOn<5U?k=G6_h*=`YD?! z2^;T%xJd}hH&M6j&E}YzTR*j2*a>{_=OE z;?1S>SCsa7SGtk@n$lyub5NGMpVI!+NrV*!WwKK*g+FeCGr6g&N#fwl+|(P%l#?@o z)K0SH;!H5Li!g4^tW3QJX51dmoSWK22E4|DaIq-$C#05UJc3MR>RpscH^}4q)Eu%l zoHOB6nrqx6jU6D(sn0>#eV9Ql9!cFsYGVxQw`)`XNi`U2&?`ADsl`;z5yrE~T$k#H z+&$UY1F|LcCGvWP@ftGQQeUG?E@#?P-=a(&XSS!lN11%ibfkVnnVH6Y!0bppg$kX` zzICRaN0Q@>mr%~rBCQ_d%l#i_A3Pc3zKbg9eU=pNrljzmNgm!q)iu3GQTqNRVEfRW zSAgd>sS}4$r;^+0FCjr(>Q3hVNpnZic<3er=EvZ9npy7vC08SvaV@?K(>~CRJN^bp zCawcbD%QF6!7F{8@XkmjzH@8G)xNcq9p2B`zV*Y)ONB8q6FkS(bA5AAZR7Ah6yn%g z>AMCx#<&kSw{rN!!k9!(IJTA!zeE_5WxB}sC3?ZgmbvA=PoZthJP!7pTYJ{~3^MWE zC7kVC?;B3pUB#T;vfkH8*)Oi-Z1+_oCQ~-gxK)a;8u1gdTxUGO`Hm~aus@=Ba-5sZ zAsdWb=X@Sosuv2wsCmc%sm0%h@QeaySUE)G3^SclL3k)!SVWF7Ges&0NOPBPOa z6@;gpL{t{}%S;b{yM^Z(Eh5*M>E&-zc7G);|TGt)u=QVSswBp$8+q&QrAJJ7oPLlC=0)LO+1d)>)E8)>}_x z3H=U!O!6_3p6{+^3H=;?RKn#}fzRcp3*X5o!t=fLthrWeo`2)_39aw_+}>sYf$YnC9( znm^Q<9^vzl@7o_?%^t0}S!?dqnki^QYTXCkVoedyevxK5Jp5E^qNV1N$3JspdEj;W zwdOloa~$~WCrUqs>iSSFYZhtEG-TOkq1Hs{ZooYcpU;~0T5~pOQk>Rl&C$a5B-QA# z4Xhc_njx)uo7VIS-zL(0;^(Z{qcz)*^_5Wc{qk9s_!g?Vas*Rd|EO)CwB1zKUw_7$ z0j>F4WVr?&tY*2cDD6mUzn$a3!5Gw zMC&`}W=dMtcQ;d3t`&K0my&xwI38ZxxejEblT2FMx&FQuY+=&c&h_Pulr-sN<@$=! zK9kmVuCFOQ#-z2KtDn+-FRkrd!k|pHm)3T8c$zY~URv9^9Gsc!rL~>Q$(ewc)^;uz zXM$c@+qvAFS?Rq8NSB8*=Xz;v=kgjwaIwfsYdcq(QI1Tdm)3T!bb~yu_tM(VHJmeH z?|3pW(x?Y%_R`wUbr`R#B3_y{U1JP7cU|kHwVi9MQ4NI_FRkrdM;KQkbDh^u1|}O< zfNb&7+Rin@*o@3JFRkrdxtwYD(h1a+$C>S3THCquIn&{#wVi9GL1TP}m)3T!+3Z`V zm)3T!hh>LYr27uC>r|ZhfmsuKGO0kFEML&fu(C_4$gCi>~^{R&Y+O`VMd4 z9IyJacfwV*>YF0dYSnj~%&Ar1f}7a7UiIDabIx|FRo@?;<81r-5xnXfXS^@9uNv_- z)oG2<&-sX22Hs^Hj`8H&+Ii)Ozmfa{V>ajeu8_;Zsg9ML-*Ux>9VGvb;}XvIG>ts$ zhyWTv-lia$3d33bP{RL_4N90v5*)``grmkC8DM5Mf5%WFjk=B+k2}>NyOWxa^R)83 z0}!`a16KNW=(^2jN>clzQJ$JcV)@$;=~scnB5EdPI;Db0-$tTe07Xs4%oM30(tn{v z)OyTxNd?TTT0{-WOt(}J>HA1TZcv*t(<2o`dI~r!qUL3$DHTNe1TCVLW~Nsvi1ZUl zL>^M3Gjjxg4;SfYk%;OY(IU0LH7~vy9Iump|B{aMdae0@)>I2zvw9b6)@#k%Nt674 zRcpc~EpW~HeXMz%)_fXSUf`MyPK3GFNk6X1rLlw-xMuhWme6l(#w4`BHP;=_l6$NY zE_XTjTtT(KH7_e>%?_Qfty=%L`odmWNnUA19#& zuDOlQ)L!S7I0^Nd`NQ{E(h(=21+IDLS1jp{lh6X!yz4NmiM-A}tAxkuG+HZdgjx7X z3taQQg{7P#g^`&iR|s`B$`t@*XqR0~}5;gP(g%GH{GB~6OcZ1B16 zYJqD$HlH;ET5}Atthq{Sss*n3L)is=-ENxm7x~rdr^dJ6~hXT&>xmH9yjtYJqEZ_Os?}5MJPS#RpvAjdz`D?Tw1Bnmkp3P#hun*F7;^VgZCT2FN{3vv zI^@nLUJs<5Plww1l>3iRp*_r$VJO1zoP(0>g&2420@sD*hL;kKtwru4wNpD2c{*HG z*m5GQV{0`|yp%G_C<~jzjY%0J)0`ROGKL!?Jif!g9W9(0C#Id0wrnKM`4dH2+5*Vo zgG#~^S0=bPuM#0G&tyTw9BDW+($WZPAnQ$!8k!63RF!ot8%fzTT@1R(FqVxZMEX&% zGXuhm9OLA%(u-rql4F4}w-k&el}s0w?$SHQ74q4l8zNn{?Eg}Gq@nvqc&J&kazw1bscA+@ zS&}A+jS4+LFe*}FowjUbT&KC>y9GPYB*wU*`eNMZ+KL8@b%*$jN;UqOkxp-*;c?GQ&+gErYuxbR!mu}gb*(dy@7nVInrDw94QX> z7JM69+~y;WV@8^%QpO#2e`wxm-sw1I)CSIPao=gD&P+$PVczYSI*K&azxH19&*sHY zb^M0D%)98@k(b4pcK*IwvPN-+pD*{e*~!EKE>^v_apNz zM|GB&@0d8sym%KfOR~&%SbTBnsJfDOi^(3h zth9GZ5_=iSUQx{6vC`gw6m5^%j_q+D4Q?+%+fDwFdFQVjcn94GVKh3#+Zck0qwe1c zw79U9Q5PR$dGRqO;|dX^;|d|B;|d|B<4Q#vy>Cj9H*alIRdslJRqX-_q+}6CA*Qd^ z4;wnf?iw`2#;Fj?;_zyh-v}|M*DR-@;`BaA=zHPKw?6H6UaEy)f&u%aHE$e%o z^YA!(-!|GT{;ApEpqve|bdBvTxcHlUs4VLFKwJDbe55vX4s%SC6O1+({MQE!re`(9 zoQ|+`;DRo}6eH+QtIKmN1*l%%j&0%dorBK_pHnFP4PSH$sXdQpExZaIs%@$%s9jcD zP`i{~;%=00tK*ILP+fItsII&mFI$V!x~8?&Wg@if^w5%J%L@hJ_;0!|EG=!&$mP`y z0OQ3Syl$in7nW9(HLfg!iZVMBp3-~Xv-9%#9bh%jSl^V#vZ1V@I9%7j@5^(Ujm7KA zLS?n3qOlTxY98;shec!6Ve? zrcil9*>^%qgO?}ufvO=rtSW6@#6K^vG%t5h_1S{nV8IXm8h9HaUWzzE1Xa41^Ah4hZh!rrJil&y8n`=(h+& zs1cnnLKHc3W+fY;G8)i$ajmOsB^jX8EUA_@`s-IKSis zxXn{vzHUUT!ocK2}@r1 z>h`e@GU`qYa5^IlHZ@~h*?-I>kA7jsdQzm;i_J)RC&bU)(aV8&wd2{b80-Z3!!CO5 zKuZW(`44e8acMr+5g4H5#M)$aLcUXk6Y^8UwuF3F^m$urAx=Ep*XaycS)6v_E?9O- zBEBgC3He@8l#rhqeeTv;h*P8q{rqt}f0)?fN>pyT2)GmRGosHe$J@yif%%E_ed3d| z67h$N+_Mw$M?{~4j<-Kj=;xo~`B}n$QIVC!X(xUlD$(=0PBB^>3?i z?MBa`J4CvuxAi-DPW*NoKS%L&NhLH-e8eI81!~5T54ar{|cj zAHmc7MT)N zJ&NCLMNIAN15P`4dt47b^Z=6~9OEvlV|>iqzMSqv>%w zRq^%1XB3BY&_l6gUq5Q5{jXMh{a_izKOLJDUq43XXRZ*pE53e+O!K!ZzJ7#E^XZWo zDpwQ)1Re4l5AG;_pg?jo{}siL*!b^&KUiGrCln?MdFZ&V4@%3reRN#wrw?>I>bTa= z9%#OfYyISb=IglD&mCyKj_VFpu8vFfB?ab0iY>$u)xz;AHolJQ zPQ{mA#o}7uCD(i%*ZLm0=KnoOT;nvAFy6oB`C+&yI!9Z8B939WHe>T2q%%fe-)Idf*t#ztZyCG76hR)vZi8j3H& zmPWYYGEv@u?Xpm5Q%%iffLL-NXolld6W?Wz+gGvdbPTq6N|=FrBiJ{IZE@N5aE6en zjZN4bh*O)eklFV~Vx`$7F?)7N%o^?bSn39|=4`>%`7J8j{LWs9I?k#Kdu!aj7UFsQ5r7q1eb zrOQt*ShzfN`jRDQ7OoDhURbcakV?Q42_>PDM%)d96}c-J2rON`tYA?nKPNwDwy19k zH^y^9Wu?X8Vo{DcxUtM8lJ?jO+-s|sHv-!8r%YpD$0p8jVJ+9#wnyGh%Jdh-VX6vaxyJ3J@%sAjZ1A1< zXndzLfSkbn0w$tDlIXX+{Vsxpek()c_5FlwRngH3iRCdLT2IqUz@^{b(D^`0fb{|j z@8=vI_64P~wf~AOXdjnUHNHsUixghhQCod-`>n^phmcvz*Y~Lo zh8Q+v{Xe$hqxZ9lB)(FT=(jFk)BTWG%h%WWl|>R_?{8I|sJ(w6MYeSP_5HExBB_!s zN%Y$vP00k^s3M!WHonHwYogXem#-fsc)fH(Iw-hs v9EDFSKH8j~R%m|GeUD`H=-4Kc@9KfCB)VL!I2?&Y`0w8-HG(#PEi3*XPdPY1 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; iD2z}`BW5<)q%o-^rb*W%HrNn}UoY!qcDlQ`J5y#S zAt_h`K{52j3Tg!reDkr7dFz7@sUY~~e;^1dRumKr#B=W4lT7YT5%es3?>WDFzV5l_ z-g&pU^r9gIFbSB3V~J6K>zQMIMzS;TDD=VV!tM_XJ3n{t7atJ1U;Klt_ltiSaylUJ zr?a<;2Mc#@U4HMu?*5O2=<-hSKpDnBkq`a@%cS8Zd(D-NsMv(Eong>M`=K6 ztARL0`o`@#fb^1aNdyo*;^|ypHkBL5^@!e%?#B^53)$>6LYR_bG5543Ug%HdE@q$4 zF7}b?%$ZMS`$ZpmAA?jT!i_Tk?OF8Mi~H*kViA`!Pr+heK8xX=jY8rmYk_k_yc3pr zzKV5S5RL|fxJFCj9%oGOTd#8PQj@bT>?^Y`XM;pmjp_|BMB(^ z>1x3#lipYz_+pS|cZ)WF^$?spTXv!9-KbYfv-2aR;|9L;>gxs26$-in6jW@wXSBget@Wg%#$itj_^+We@q}!Pc+Gj6V8=+OvBG9xnIrHPe*qj`9Xz~|M;m6 z$8hq`ef^wjo4mF(ZZz^1` z&zBlbPb(3h5!Eezd${LxKhH=jdWKKd-&8oAN&H;EYHl?`dkyC>h~_GDfm^q&(A^Bd zD%+tA)>^X(mPE_$+Ipo_^RD^0CV6{pEpRtZEZc$YRos&%^_u6h3C01-@f!^nA7ab% zL)XIB58p`Jd0RPhtEFp!-N4uJf0BvzR1>ZzyPHuA-)F{2H% zx-VqQJ&s>pNpwF5*I&#}qve)Sk53JYAE_%#fj~B zrgxM1xZbwjkZMua{X*Guy6l7PCm2vO*Pr3fkV&fF-Gutl_m1tkew2?Mn|$x7{I^xY my@=5_PPeCTQ_@x^RR3Sa^*HJKr*loRzpwKDDsGItZvPL?H!vjt diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc/sauvegarde.tar.gz b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc/sauvegarde.tar.gz deleted file mode 100644 index 61383fff860f7b739f4baa0db1e66176b87d4cae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4411 zcmbV}6|!@HqFHE`yV{l z^}P68_x22z824K=_*OMXmaGXtQxWdt!;; z_&qfm1GB+^Dp+lX%uT1Khjwq2P;>X&hHPD>)It%e7)m>Cg*Z0Jd%ioToRlij_es%N zTP=NX4661ruij@yN-?@p@fVQ=tM#B~SMrp7(*@?|N9XWNLO&vFKopVnAQ>^iMuWEM z*6Wi<(eEEmv%F}ra4Ouo3KFYD@4al2zg)SbYG1Xi{)};unl#5VPU68a?nEa%gvn20 zcsdt#(Meg%Wi6>-4i^N}9>@OUy@&k18JUA6&dZmLWsp1^ae3T-29^B#SUIHF*Zktd z&Fw6L?h!-a`$ByZo3STyXq0fGSY=cY63ohqBfOa#Bg}C^*muQ2OTSqpc?J_J4zM>9 zVclh1=jz&PpS_aLD_XAo%z4rO(L~XyP{9tEo>Lvr1jg0F?z!0u+0m6O>*6wr=}phz z^yaufSih(BSUMAU*!k$bn{ocHmsXMg^j5tj1QaMNP6+j1ppG9_cW%X9BSIS0N0G@@ zp5d*L-ct9>OeAJxRwyZ@Kq}bUKmbKeTA``((@~DLf=)&{+@lyMA-!fQuw>4ely4lzO`YM)mSvvFx5#<0h#837 z2f8`QRb}THkeUjwtVp`2 zxxR3+GK%a&JdU_Aj3^`w$9=Xge04yQewDdJjNS*jqZ9Y}j;L@s2ABbrBlCl;_u5}S z3%T3h)}b*4XgNu8u5CilfHuI+j8HX>DeFK^{;zLF51H!THc)ox)D+I)u?i07+?GvmFTdye5{_i&G48BI({8nbc zrc=HPYxLnatEmP^^5jv_bKk8lY7**MB*BcwCt%6z1AsSu7dq2f{~0Pb#nfef)Tzu0^;e5NBa5lee%2M{>z6>qMO!TmUx@hwl zlN{A;~ zGwXY_e|x@iFBW%AyWg296W@)ZT*%I3GfQq=K1EiYS`?Kk_9 zy_T&pcKY|}rSrntnd-YFL-ID@O4$PbV`z334U0DdqN}$tIyuCUQ>)@z{_Vrs{COa9^a$nMyZ@0<1h{)nAR0@#$(ttzQKq9MGe z0PU#@_g_r*d|>hLF>8Jrp@`BvpQ^+>be04?Vny3fC4z?S7mRUPlAn1~g!rN8XYbgo zLwe^B+^}N^zS=wlKjQp5KahUc{)f+g!Qtvi1f?vD0v!c?xs4H*w z6ycS?1u&8~jXpSvUHs9ly606WZ`;Ua5=(p`jwc;GmTG{_QjV8P%n2gpCbVD<-uA{Z`t3#RV3hcx=64}IBY2sB2R5ke2(mOA)zO!p0LA1DUD@d?5KR-R9O{i zYrBD^$1JhL6ut)FR-jWv?wjBQYlEhhC9^Mdfhs;ZiRI%-)?`p!(b5h$BLXC$oP`Ol zrn9h)$~=r@w04VijUHjNPW74;eAj@(^?C+WWrdkx0BpxMA6wD1trBRVC{&^}Sm=h} z?=FQ(s!H8qjear1F<)r@dBso=zAM)D#Vuiim#o@><&{n=Zp3@K2sw?);gh_NICA6^ z%`-w&69jTKv{)r0oWnoZuuC*ngt@D0p+{@0l}TDtU!||fZ{XBI+RlfZ!NrXLw_CP4 z;Ey2APJM=W98~4_G{On*IW0cl?qzE9))8va4YGl9Gq5K+Pi?0PmF^yu;8$}`n7KF6 zU^RzKsXKlS{h%G~@VEa`JRIvQ}e(@7$J8y(9VgcF9gtbyQG*)ha)64w92Rvwwns3|HpI2m-cr+erQ! z?v}1_e>|E|82TDLM!OD$5wB4H1cA#n0DWzjVh1GyeU0seuD`DSmCNhvvJeB^LPK^8 zhlh9H;ya|OXc98C>-0eKrnKugOPQ`L7BPDZ_%Syu_`o>cm5kCaevcos_hy z<2F3UBH~SNlCsQB4zRO_B{glx0t`mw%_+?_&epRL|*po`Xh-q(jP{VJ`hHc9D>cs5fNpmfF)Gt%#yp%hO2sX^aIKv3jH*J z_8Yt%?Tby^GC5$w&Fij^N3FRih+n0Z9S5<4Rh2ZmXBq^3y=B}QN7&>#1nH7C3hY>! z8`*Cg)WnF=Hrvpb%jq8mMCG!eUm+PJwJhBhlxs&L!SkrMXy1OLs2}ofeV!l!)J`-= zvxTY!yCvDYfMj^pMx-z=n>nRGraysu7is@5Nj3H=UR)X_?`l+G_kv82|C`%Dh14(I zGc1AXmjH;11n1B_aN~~3S!h`^wQ18Oi(jgj(})vUk7WV^M>FDa1NVChDe15e)iy5C zftvh!i~s{qH~iHYeUR_&UeUAZ9{l{Jy1Mi9Ur>aZtmjjoMc%)lbqv>+hIb5=-yeeN zPGdtzmnsflbT)`z8fH>)Po6N=`$msCgVM}p^^NDAYR26dbN&OJD`QvwKRrfko~7E? zi$@NDMjcwSwga4QpR;Rx!ato9&5@=wGd^;49}~Fb>_A`&*UUr;Y&AbP|rst2~Nk9kun#M$Bqo zu_lZSUHnN0d8yhs>0f_QFUWxkBpMVf$C=i&=n&w63GTly4K$7BEWb&AYdR#@+I_0W zpS%YRRbFWFP;}3km|f;MvC-G@rIRniu0Nb*K$P&2o#;_C`*M=s@nWF2SYz`r^Q?%-R8y@q%(Buy@@&e*-{ZFrzj)!_ zfqapsu|jDRk2dAgG@=cTjwsh|c)y=R`fBw3>=VqI7z8+XMEk1~_JbpVb{45id0^Qx z-9bA7hTRX;D=>x~iEAgV-}dhl$c6<+oF>UxM&S#|wcpEfU`SMNWe1!#dBmT*Z5^AH zC{4=^m^~z*2{Inaz&j(4ykVG#wQhRbk!aG$?W~iiM>J&kn2d7_-Vl6h=PvZ)FUa{5 z>ei3!mT*eJ>hwf4Dw=j|UD8iRT@4FvkqR*gdEFP5b zFoKp)D*71GEC4GZ51@)iSW4Gmqv&D|R1Zk#fczF0eDahj?J4+$ewgr?$M)Rhmabd% z7O&<{b8f_Z$l4E6#?{MXHFfWO^)JG2dX5gI?pHvdqVG25!4IAIDy+`4pQH#HqQnzi zJ|d_m<;PnoWVkyS)`R0Dr#E%(3-y{?hII$zx)CYIF}6DK$%{|0Yd3veCucof{{+}H zfjD}lHXXjcfW2bR`K6*|I$&Y#W3AynD{riAOdFE}T4=qO;hknFbr0#MpY8<9f0S?Y zrL}f>7t4fKvM4im9c-@AvI2d!F+q0-{kHB(+Jf+HM7{sl_mf(0dW5E0rXNA>rwZ-> z|8cKU>geWSfvsC*!JL@Q=6f9_?*1lZI^?O1>=ie9|9~Jp>ih;Q|1AHTq)b`EyGry{ zF57%zQ4~r4^<(OFyo79s8qed zZwAl_BsUc#G4+D?$K)^3jig-Yd7C+$MrW8yJx+E{mxw^& zPO^*^;=U$3Wr|k8S1|MO>hXCH{(-V#)3`P0`TTj}INZo;zR@8L<~-fVcOcN&LKD|3 zwYM|%8uSc^0E|!K033sVdzS+)QZ~5?>HMN$Ct|ju6d2+wN@59s-_LWMeyEqvgr(o< zUzVR%f<2SNz>IQ^g7QBBs-3I= diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/Makefile b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/Makefile deleted file mode 100644 index f2f8f5e367..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/Makefile +++ /dev/null @@ -1,27 +0,0 @@ -C=gcc -CFLAGS=-W -Wall -LDFLAGS= -EXEC=cnProc_gen_avx512 -SRC= $(wildcard *.c) -OBJ= $(SRC:.c=.o) - -all: $(EXEC) - -cnProc_gen_avx512: $(OBJ) - @$(CC) -o $@ $^ $(LDFLAGS) -O3 - -#main.o: cnProc_gen_avx512.h - -%.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 cnProc_gen_BG1_avx512.c cnProc_gen_BG2_avx512.c Makefile diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.c b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.c deleted file mode 100644 index 30cc5e85b5..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.c +++ /dev/null @@ -1,627 +0,0 @@ - - -#include -#include -#include "../../nrLDPCdecoder_defs.h" - -void nrLDPC_cnProc_BG1_generator_AVX512(int R) -{ - const char *ratestr[3]={"13","23","89"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R%s_AVX512.h",ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - - - fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); - - - fprintf(fd,"static inline void nrLDPC_cnProc_BG1_R%s_AVX512(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) {\n",ratestr[R]); - - const uint8_t* lut_numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1; - - if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R13; - else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R23; - else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - - uint32_t i,j; - uint32_t k; - // Offset to each bit within a group in terms of 64 Byte - uint32_t bitOffsetInGroup; - - - fprintf(fd," uint32_t M, i;\n"); - fprintf(fd," int8_t* cnProcBuf = p_procBuf->cnProcBuf;\n"); - fprintf(fd," int8_t* cnProcBufRes = p_procBuf->cnProcBufRes;\n"); - fprintf(fd," __m512i* p_cnProcBufResBit;\n"); - fprintf(fd," __m512i* p_cnProcBufRes;\n"); - fprintf(fd," __m512i* p_cnProcBuf;\n"); - - - fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR, ones;\n"); - - fprintf(fd," zeros = _mm512_setzero_si512();\n"); - fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); - fprintf(fd," ones = _mm512_set1_epi8((char)1);\n"); - - - - // ===================================================================== - // Process group with 3 BNs - fprintf(fd,"//Process group with 3 BNs\n"); - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[0]*Z + 63)>>6; - - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[0] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[0]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[0]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[0]); - - // Loop over every BN - - for (j=0; j<3; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[1]*Z + 63)>>6; - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[1] ); - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[1]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[1]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[1]); - - // Loop over every BN - for (j=0; j<4; j++) - { - // Loop over CNs -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - // { - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[2]*Z + 63)>>6; - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[2] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[2]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[2]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[2]); - - // Loop over every BN - - for (j=0; j<5; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[3]*Z + 63)>>6; - - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[3] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[3]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[3]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[3]); - - // Loop over every BN - - for (j=0; j<6; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[4]*Z + 63)>>6; - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[4] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[4]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[4]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[4]); - - // Loop over every BN - - for (j=0; j<7; j++) - { - // Loop over CNs -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - // { - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[5] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[5]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[5]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[5]); - - // Loop over every BN - - for (j=0; j<8; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - // { - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[6] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[6]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[6]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[6]); - - // Loop over every BN - - for (j=0; j<9; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[7]*Z + 63)>>6; - fprintf(fd, " M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[7] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[7]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[7]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[7]); - - - // Loop over every BN - - for (j=0; j<10; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - // { - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[8]*Z + 63)>>6; - fprintf(fd, " M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[8] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[8]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[8]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[8]); - - // Loop over every BN - - for (j=0; j<19; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i zZ(W`iL9N9;tF%&=)+M$zBGs1KR&8q)wk`C5IybMHAbcTVO@aC`r&Gw0sl z{hf2qz4zSvtr;$>TDBw@2zZhL-a;=`64dkdT$RdKnrx*v)*IuUR^9t%_2qw#WP4uk zqkn$?!w;*Us_LV9$n7k5l3Z(Qz172PCV1&V*Y*&34S?24o)r?|i|IK)`{H9VD`Ep)Ik;CEvQI zs`kQt?@x7T{MxF$h4)px)cX@(GbXen1N%#w4_sMAo!+^7Fz1bd*#iwwi?nP?2Uf9d z8p-{zef&TJVtdxds#@x=HQB#v#K5YxReJ+#FWDO`T=$I+uy=8XGX_r$`Z~YArxs#$ ze@`96w*H=a2*gl>1!ER$wBSkzC^T8H*@EX<@H~jsXl`Hi+P(mX+QmT|Y77lFW1^Nh zF85{ch-^1?9E6 zp^cwWLlT37ER0V(`a^~5Mh+hRjZgKIBVu3lkePwZ)&MfIkhwaD%p7EDLdeWT#v{%# z!kI6eg~F*6&LU)t!Q+LqL^##L`MhwJA!8c-f^e1#XN7Q170&6%Tpi@q739_R!_?{` zXsFf2oD3T}R!?|{)#Y0+tLqRr^T{^$2d{jRW~A{~y9*!mKP-LBogKz$miNc_M_ffX zB*8dE&Sz$vqVdx={+TVy0_-E|w2co+S%vFf{MVodC9JePShzK`_cW3W!^`|tj~WUW5^#MW5^yx&5(o07;+XehMa>;4OtE&W5{{P7;-)`hCBip zLoPzbkVhfYM_OZ$G30T`81i^z4EaE04EZ2r4EYdbBIIfW8AG0gj3FO^j3G}!#*mAV zG305;Bm%tPL%iV2QVX7-p%y%IGB5c2Ar`!Ey)5{fK8?fa6T5=uc#5Mc4yi>jS@@v0 zKcW87j;T*o?SX0Uo%63fX%8Rvq~+~cy;T%)`_t-2+ZxuQ)wP%G$y(L>nJqQ{^S|uE zb?2a0(sG9LKZN9ZFy>Q4Uysac%FsFEHp<+9%pS_zgiHy=@4q3_M44NWG4Z<*8Kboc z8KZSOGDho8WQ^8b$QZ3H$QZ5fB4Zl82N|PvFEU1JD>6pw2gn$$ZO9m{2aqvZ4k(v()?>&Rtv+Oo)=!WzT0cX^X!Rpw8r_bJ(b|EG(Rv0MqxB19jMh$MjMj6= z7_HwRV;X%P8KdBV)97A!D>&L#9NQbrvt{iqx_uXsBh)oXpF* zXozL)TQAG{-#(3HZO@X;62r3Y_^g+8S87@F`8oCzv#=?^KeL6Mz3M7iUjK)uwmF6C z&PK1KEA<$3<1QgDPfI=q(6uKaw5Ql(5Hv|+` zK|tXG2sE@B0t#y&pl~4s6fS~*!o?6!xC8r85YU?o0lj$; z&^rbKddEUQZ$1R{7C=C6Aq1K|4gz|W5YYP^1oRd`KyNVw^p1ysUKIrNmOw!71c)uX zr{wUSa$sstA!w*Qg*ln`l<`CCDZcfxr>y;Cdy2WY`y_?+r+!aOc9FJgtIYZT6R(A; z18>un$8--PxPKeh$J#$~S6wHo`2TSK2p6uSqoK5X(7=tRzh@IJ#PQ@{GX&!Ac8DYT zd+vZh7~Tni`@G+VKs4S3acY0hcOVdyTOeBcd+vrn_i-S_^?M+o{yhk&-wOft z`yimc6$0wthk*JIAfSFf1f19g0rek3K>Yy-s6Pk+^@kv!{xAg8e*^*bA45R>5eTS1 z3IQh`gMj+u5K!-ffcg^Tg3p{T&FX{}}@6e}RDdUm>9WpAc|j4+PZz1_AYVA)x+u2&nIcfck$y zK>Z&OP=5~s>iZy|{@)NaynE&H?&X{j5j529#hlE$*Fi(5ORq8~#{3TKF?OBl5qUF)aOzD8r6c{nc;o!NYg+H2vYzu;W$tzEIuU z|M%)|SNHCz?tTB-aBp7q+Mi_6qau#OFvsD{)KQe6q2iD^nd2}rL>&6oOB~+%$&RA- zp$?rRBO>Gqya?|ye5Nz&s%>v{RZv$C^cEIX8g zgzxMeSk4KBsNYE0S)oiR7z~mJ;k=wN!_cS~&ZX~w2YlQCdD+<`atm_8!-|IGk0=Ue zW##0AVZ0zaHzzw73T2u9;4|5u=6QiYFe?-Qs(K!v7kh>UvO~FHVmdGVP?1w0G&XYu z*VF4AcwZ@BE>Y<% zg8wHbPWDdmzLYpCQR~$w8XU%;S+ri580Sq)OiomIc;f}FE>UqlZ+dDZxwg4(n2 zS&7dT_-w%E4&V>s^9(+3;FJ9^#)sC+A^0G;;Deb1)7Ng~X)eBnIwvJ)J<@ZnBk-An z59V%=G|!u#Sm0rl5{td6#1gMMu@qy4x%NpD69**@^$trEd(#p}dD9bkJq0Ze!wik} z#%mn}>7YsTb@{R((xAroqf)o`QOiTPH)M6iOmD_aZ|*#AX-i9NWo=7jMPzaVV!5=m ztfir&KDsj27Hw>9iFK9Lw=M5%uaDNQT0OgBMp;|uvg4O8jxxCDgo@~j$z9RUoqh%? zOPjn4yv4O`ZSC<$eP^sT9*cN~H@DTdbT`Bz^Sj~=&2910riFP9*xcF*u(P?%;24C% z8)A*kZLvswds{3M&XGac(hG~1*!I@FHF`z+Z$ScMXbw5A2r5=aa8*ejne2hQ_qtPLSa#J-0JKn zKiRWvl1O`7vMX9Y5;0U7LynxT zSe&3}S2H?TJe55hsAr9*=~dVuEUs^=?VMUM<7iRNFb~G3L6k|gtc+G%tg9=sva`Lr zBXU7=yeTp>vgiw4h>Me;Ts*m9+L@7~B6DU=UAS zG_KA>`YAaY7!OCm&OFr8F}OClA;Ny8MzFEHGg92Vp#0e8`6nIQeAH29o!I37KhhJ; zYr0)Haa42C@pN{CCf}LM)$N@;j}!tWCQ9t2Xgx%ZqgPwkWv7ywHwuIEp$&fb++q`e z97yR#I2N=WKYuBR9d|vgNB$;5HobWpm_F@IOP?XESD4AL$(oKNR}ve`5XS?|9d#7u z+x7MmpFo~v13BZo4>Ic+7sYH|6sdOoTAgE=8COq6(?<_5Z5kmD)51L&mKm+g&1A*T z$9a~V(NIPCV3n*1!;;Fq8gISV=k4(#f#rcjU~6DkpeR@w>S} ze%PVbhHA@tG`K(F^;nw>2T)VpR*|$8-sCn25tNd&hbo)4aF%B^&@O?>3|eA7byd-R8~wfwdTuQ z?FN5Ce;p7C=MoeOnCse5(3Y|o%rSLA+|+^ftZbY>LBW)aiO_X))n>C_r7T;^4(Eiw zNyUIMUw>QMfoC||A6x2ZT>^bM~30c%k~0P zD7J-wDU{nn&=ls{LdX;h3&R3*ceBP8h6fr^XtITZ0D0VD z3nNV-ZVRIW9jIAt3kL+2ppdYI@qtrOxWX1D1X^Hitt}iJpjX$gwuLEyi$Gg%3uS?? zqHvQfl$*jPTc|LFEw(Vj6t>#J%)oT$JY);Ajc~7h&n0XkVy_q^` z$Mtr~a{dnLF3-bv>HrscIbnJyFegltIGpB|+|FNz452ig2EAU;(LirPp@6uMU>!kY zV6)|PSHfm1Xqaqv=1IuXomnqn{G*(NZQ$0=BfJY&psEgVXv0h0MN}UcMtEq$*2`?M z=uA`GbLq&&1}`w`T$F+v&aicdbeK|;EggE1DJ>t>>;;M+g9jteC(~0#bDqsmVJpW&kxWV3T;Smd3E4$ zQ|`Oi*8ecD(3JOFWXpR4UpD3STrLmBO?g-M7_v`^Zc|eljfTcj1_PL^EF=J_+^HOA zA*>$Gh?X~;=8#6w%x=)mD~+QmS72Umg-T9%6`+DG;O2xcr!0-na4OT#SY7iS@Cw!e zF;z571`Jt(SFo9??uQl)nE|sb!7F$~s%Z2Km~9DO!3$DF18Kk05MfGyao(gf>%&1RW#BD9A*h#!D6Z+4{6X1ILdsF^a{?QD(ZKyRE4orkizF~ z1TqX~2R0R~5$65E%w}fG_H^bQ#3cX!C`_^0@oqZvSrlz+o%z^joz_w{@hN^at11W9 zn08MCZaO%Dt*<#ZomqvVZTF%p{c0}RIIzZ8zaO}XC%m)Y4<4LrriRzeobXMb0Uhi-RsWutNB`dV2!cf3*1;gm~DJxV>)vUiq`rK z5Bb&H^qgPKxBl!`b6XB}Z>PVhb~Z-_)|gnG4Lr@)yFQ=JoQ$GjMunNnzHf=AGfx&~ zuQ0Qi`Q44_%r(TMMRdO~Wu(5hJ)L=nF#jk_Y5l%;)0xi-GZ%+A(<5p9`v(DWM&&(X z(mJgW<~a8AhfC6#hoNYgX9;r{GasZQzGL%56zz;Yd`)_dS;5rT+r);n_Q$W%)bj$)=ys;hjhoU*NOQpw00{5=EzWRH}%hHB;dRQO68N-$&(=&9S9ks!{MX^A51S2y6vPD zlbnK+eHI7Ap!X_}K;VBy6wsq5x;VfmP}bemS=Q2ASGKagzHIf}Ing<@rgz2~nrh?I zaf`Qmb=j=axuvtq`1Z4B=v*kPYmRrNA#~fj6wedvZ8CH7n{I8}d)}q>&=9c*M=C*}o#@i<83a<@+FT53M!AIyT{DS%3Oy9vNqfLQ~2E%t)XpAXr zGT*nGZ(Hqrhnm70Q4`4dd`{@ljp0qfQ^$m729FpM{&D!t@LQzws8M{;eA}jGx=r0l z6~UQfQ}tnHxsY+lR)pQwzm#gdoLb)&7)Q;IHO=oPn*)1#FgkB2qqQlcQ^@Gmp$U%BM~u-~%F|y<(tLtjMFa|ZE;7L|z{BsQr zor_YW8POFWv4KS};MCy>9oPA3&i0~RO?X;W*WG9wgN)YIcEx;~vnJ`*`i$9g%nkF* z)MYK5=t0W40S=@Hvt93cR}R5h%O zbuEu!wsokb;Uf;N=*p$Fs+{E zi=Ld)^HF2ug3ji6%tl}r%{>l_CmY|F+Q{-uRHPfB#=B})#Rdrw+Y`hHo-W&G5=p0` zE$#K^$%G6T8Ja(ujTv6F6^BQ!v8}e%2I0VEF-TC^=|ST>1Mb8p=V0K&Up(=SVTkeM z$Ue>X>?7Co$&iRk_7O|V_AxoKWlim^v9hi;WqgpAN9OVN_Li=)R4aV0Vb3wdS6aI= z;kF-W;Dj%n7FirI=QEKR#=F~M3rrJu);%3T zQs1-y=SI`#%!*838JUjLk_Gki<~ft^tdF$mu(L;#O*6(jPjkcS#pY#z6DrD$jU`K$ zRoSph_MXPv;n_(@2D{TWOmatim-Kt!9MNjFQJy4e5B;{aRi3NL^UQ`s zZxNUZESfZzFsE?I9S1e)cGAs@3u0j47|^`5#a3gVqcNB>%RQKxgGO?PFnejVqqd;} zTnNlK3FwoUWrfdfXxAyV)!o+J6@xDAwRi)<#9du&{dwIT8MYuNzADTylg`wA&+0SJ zb1L-h{+K)x4%~$7h=&cKDZExfuYFfl(jydIYpbTd?L zh?=XS&y6Tr7hGJB6FO-UC`LEa7hM)*d4Izn*$zx0x@O6cLUehOA%*y9jIIjdsfA9s zyo2==egqR{GG5MQTq2r8x5lJ<)<69MeKI6L> zUv1s-zRq|JB&CS?#%r65Cm5G?@pHyEF+QL9e`b6a<3)@YAe5jVO;#*!FZOrw#O|Q=D)*ugz*UD`xviO zcn-?cuNsAqWjw)nCEJzrqK<#s?qtpq1%-s=^$yGu6y+59aO>GI?Q`@yNz!R~hU0)FxwH>cm^0 zeWWbvnv^|Vld`5xjqT|eAHvm%%usdqL~NkWIm}O|C3&-_ENo0Mvr4P<*83C`|4B6-VUfuo};r{{sce!Neg~W zqz%ac`&?@W#iw@grc*I7K;8P58gzdGnn=5kl711dE}zq`;0-f*-K8!<_v7-`p67RU z;N|Ohqu1Ep5o_~0x^ZK?(VX{sjZ#zJ(vEvUoXn$kVUO(4pGkL<^RQ? zsd0Fb`R_8W`Swk#6u+EL0mky7l=$@XvEt9cjLZD8S+7*#a{m4~h0FQ-sS2-WL-mZy zyliHFS{WyQ+;~{y;PhZc{Jhk`-SPj1vfsz{Z+7_Zc+&YcCGlq$^SAl%cPM@YPrWJq z(uYsy=aj^L6Z7Bp;hPC}_%|^>n+66+&+kOW#r}5YM|}8m6n_u%kM-f7qWI-}X?nU3 zpI#fIB>prppRN}uk#NWVD#hQz{Of%9w=4cj%>RxL|L=;wkNG&sG>NL+_%CK${4e4Q z&e=Zv;}ze&w1+>{^5M5DzI_u9ud4a*uUCBgMxE!~=57Dam+>KNA?&<6oxuO>BRb!*~6mH|t#cTbX~d4?m{( zyO~cfk5M9jT>Em}CH_bF(x=CVe~Yr;!Te1={09{O2Il|RhyRM=f1CMl`0(ra_#pmE z{I@f%$Nx6Pm-xTOhyS?ZOZ-3M!+%@xCH~*@;TQ0JEdERUk78WU*IdQl&f`Nbgi+G{ zJxlQ={%ah*8xN}#U*i8FAHE#l#D9tZdmX;J9)G6nOZ-3W@LhjiQGAL2H+=Ycyx(ho z4q#l5&veBXe`Yv**Pm*|7k^Ij;nyp^tVcOc>iNA?@nt=(^|61m;>&uZci$u)T>rNz zzO2WGefWP={J(L$z2?L3{C`jJWj+4D;k)*?E55A9XMOl@DZco#*WtVV zA{=DJCe_!!sfB4XcKbF@YRns9w_J;!**Yj1b__9CD_TitX z_yv5!cexKguJ{v~zs86EeXbY(kLL1YEcJT-tKt`N9RH6GA1~LLB=%+fPh?!%pQre; zKP>U#pRM?^Kh!#WHy*B2e2KT49ljfH_bI;Y58E8RYk!C0%l`07AAXP@(8&0RKZT6z z@tLgnvL2^7eAk~!#h3W6^5Mr6U*i81iv!xF`p zc>AKmcjK*D@g@G-9KLJ+O2wD>@Act7uK425GY;SN=QYKb_XIR0Pt;a`4mdOXYhfv+*H$Nw?Km-zp= z5C3Jwm-v6jhd+#8G?Mw1_#el(_NPSgCH^ZMz8eo`D89s7%;7JKUeW3{@Z={J&G^qKiBy1?^XPL9RK(G@E=$F2w$fSi=>a6tc!7s>o{DZ__8j( z=)-SRd|4M=KKu=eFY98X4}Y8D%er{j;k)zxrs7K+zU%PaI1C@=nI!8})AsbifP12K7PGRL)SmRR{=K>fqEaJ)5UQ?@mx6KH=xGu|)(T z34T652U=?3Bz`aRmn-~a#=oTSqsd{UbF4_(xrObwDEw;XpRaH(dKWAF=REMe3UA@@ zyh-6#F#lT$-^u=LQTPs?uWbt7z<%~AoF5aIp8=&R8PAo>e^K#&%l^Ef@VnXnJqqvT zasHRW>1Q)2<#9XG?q&;n2PmBWp)^WIDEtYwU!m|t><|6iFD0@6I{Sa3!l(0io}qAw z@0h~ry=_XJ3O|(N|1yQYz~$={ekYgZJrnWs3HIkM#lO)u>)o&L4|yE=6#hDwpH=uC z9*5s6{5{6sQuqgq?^Sp`i4{`X&4d#XpnBe~}OW8XiBfvx4L52F6L9v!>;3icdcUM5#~l%Ps7^toZWYjJ!u7 z_N$q{Pw@|8Jd4Le_@^)~?@@^V^vf@l4pICwE$o#rF8r&wEbm>2{d(q~uK07|1J9? z=QYCrfce)b{#O{kLHSd}e%`70^!HShwkm!(%)jhxE5ncE05A!0gW#rq<*8Z2ul*zmM(jQ1*Yv z{O1*4{%%a(Gm-I;_j=8N8oJ_-{5{zrL_`w)Gq&i-`y|4T@V+P4@xniw$6wwv5q>4} zS19{3FXu2W{2Jz8toZa3izY1f)o{3$qOywl1i$#uqBYD?qvH`1jIweec7 zw63emEA4Ez1ykD)tLt7FZEkC92gl@V>*_jVt3V@VhB|B8@Z%9_82x;`sL+o=l-9Sm zw#M*B>!tYB{a7jf2pNCnk3WxQrC3w6v6Fs9;ghBa4A7X#xQe|>&dA^02~J!$O+nNC!c5ocq(m?J!RAd^zT^Fzhw@>3obEL=b^T0B-e>&Zq zLyD+MRrKiitufMDMIA#bw<7tixo4mzqyOuyis+O7v_)$F>HdqhNt$v+NW2rbo-Y8Bb(wUvL;=y*vjAV@q^)H`{KvdsK}&$;)zzn-J=K* zJ&_w6%xc*0HLUMqlovh0?_x~HZ-VvZew^^7|5DzJOs4TG&Me8I9|i1{DsqhHDXZzW?+(&P8PwX-j4 diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.save1 b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.save1 deleted file mode 100644 index 462f196d1d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.save1 +++ /dev/null @@ -1,603 +0,0 @@ - -#include -#include -#include "../../nrLDPCdecoder_defs.h" - -void nrLDPC_cnProc_BG1_generator_AVX512(int R) -{ - const char *ratestr[3]={"13","23","89"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R%s_AVX512.h",ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - - - fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); - - - fprintf(fd,"static inline void nrLDPC_cnProc_BG1_R%s_AVX512(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) {\n",ratestr[R]); - - const uint8_t* lut_numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1; - - if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R13; - else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R23; - else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - - uint32_t i,j; - uint32_t k; - // Offset to each bit within a group in terms of 64 Byte - uint32_t bitOffsetInGroup; - - - fprintf(fd," uint32_t M, i;\n"); - fprintf(fd," int8_t* cnProcBuf = p_procBuf->cnProcBuf;\n"); - fprintf(fd," int8_t* cnProcBufRes = p_procBuf->cnProcBufRes;\n"); - fprintf(fd," __m512i* p_cnProcBufResBit;\n"); - fprintf(fd," __m512i* p_cnProcBufRes;\n"); - fprintf(fd," __m512i* p_cnProcBuf;\n"); - - - fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR, ones;\n"); - - fprintf(fd," zeros = _mm512_setzero_si512();\n"); - fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); - fprintf(fd," ones = _mm512_set1_epi8((char)1);\n"); - - - - // ===================================================================== - // Process group with 3 BNs - fprintf(fd,"//Process group with 3 BNs\n"); - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[0]*Z + 63)>>6; - - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[0] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[0]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[0]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[0]); - - // Loop over every BN - - for (j=0; j<3; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[1]*Z + 63)>>6; - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[1] ); - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[1]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[1]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[1]); - - // Loop over every BN - for (j=0; j<4; j++) - { - // Loop over CNs - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - // { - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[2]*Z + 63)>>6; - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[2] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[2]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[2]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[2]); - - // Loop over every BN - - for (j=0; j<5; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[3]*Z + 63)>>6; - - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[3] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[3]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[3]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[3]); - - // Loop over every BN - - for (j=0; j<6; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[4]*Z + 63)>>6; - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[4] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[4]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[4]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[4]); - - // Loop over every BN - - for (j=0; j<7; j++) - { - // Loop over CNs -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - // { - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[5] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[5]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[5]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[5]); - - // Loop over every BN - - for (j=0; j<8; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - // { - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[6] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[6]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[6]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[6]); - - // Loop over every BN - - for (j=0; j<9; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[7]*Z + 63)>>6; - fprintf(fd, " M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[7] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[7]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[7]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[7]); - - - // Loop over every BN - - for (j=0; j<10; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - // { - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[8]*Z + 63)>>6; - fprintf(fd, " M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[8] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[8]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[8]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[8]); - - // Loop over every BN - - for (j=0; j<19; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i -#include -#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 7e811fdb4251ec92059bb0a67d2d2bb1b6a817be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26776 zcmcIs3w)H-mH)n(%w$3ci3SwvYph@sBrjfq0!AG3VcY7aj9{*JRlRrB4DYHs z@2Z*JRVU_7#;=65c z|1!+;0SB4o$n0~GxrAokhs zp~cmJyzi2+7@zlDvO$|s;WjbX6KG){?!y9or|j8!>A}V=!;S7>qpLsnH&*Q;`@5aC zpX@K)J$U=rj~+aG8xGL&`|i#7$Zl_F>yiW6O}xHJ^F!0lw)bpp zP|>;PZ69t23d~F^N4yU{R$wAb)?y$MCfA3#Qt{}UNSK8TDWe}If?;zMK< z`G1g6y%?0Vm}f&U)W02s@k9MP zAZmyDA0qlt|HBX~hx-2!qHn1GpCGUqegtCYQ2(P4*c0!BfWp@xpzw7FDEu=76utog zg~uSE@J$FPJPv_|c0oYlTM$tAHUt!&fPli25Kwpu0t!zV6$mK2 z3IT=JAfWI%1QdP%0fiqzK;cIaQ1~$f8XAUx!cQQe@CF1FehLAFpFu$3=MYf%7YHc) z0%8DDM4P1oz7Kzrxep2Qz7O%vFv6oJbyW9ZnSCGn8!K@i;wD^4H{sKcdM!BO6T zgMdIe7XpDYpXfvV3m_0E=RqJ)8Xypn3n36-=R*t*^*2JiIn=)h0^xQ61k^8tfcjzx zs4szl`b7{>UkU;BWe`yRECke-LqPpvi19=Hmq0-MQV6JD1_AZUA)vkj0_vZGfcg~> zP`?ra>Ys;z`c)9<#MKZ`k3c|uB?Q!)AfVn10reILsJB8uJqiK!HVCMb>Xm3WVbfO-M~>PZNw)6xiani{CneirI| z5KvzW0rl%4puP^GZ>awU2&k`zfclLPP~QLn^%MluZ-RjO%@9!E2m$p?5K!-jKqods zK>Zd7sNV_!^(_!k{{jTmw?aVuHVCNS4gvKqLO}fv2y|iq0_xi!pnfL=)bE0T`rQyv z{}Ke$?}32&mm#2jF9g)T0x`&oP9S&DA?TA`bjIc`I`r_zqBHpazvysd)}o`^qeUmX z$xmX@2_5aC!(BbvMaTOUttflZp$CPvI_dRDAKktBJ=FhQDOKP&sZZnj8m{+Y>U7NG zJY1i{wF;M=Xg6{fxc{R0sUp|$7X*TZp`uacZs6EZz~^%dNY5`BvVc|`=j0O$i;D_E zqeF$GM~yBXRXA!?NnxmXbRbA4Y)GSv3jzTc3;2Ub_zVPLIq3J37mxx4{(Q;j^HC2% zqk?0L(5MqCq)*oYe%$e+0)a7wCBaZpS<&b*Wxj%fU@!#ZC4s_Vz~}cDsQ=JsvOn2z zT-R6NcY#_XcVW*das&Rt5HXEIYbtVb{p0diaQ*3!IPZ3Sum+-T!q7MteRcyHNY{&T zNWVYehwev9=YZaTxmt|tYFxMC`UbFPaeaXNXIv-M1*02rJ@!$JAGs?jy!55$8T%Pr zvytz_^%U|$S~rCzQ=^cN;p)4 zb3$rTs?M2)mRu*8nxy(7dgznWi0iYcy%JYDuA6af!}T!m-MD^$>vy;UAHzR%znqK< z!G%7kIZ$KmMV{v3e$*K$MfW4UC{M&ir{I{o5z=gDPHL_LFQpbZ4XK4rV`>q6g}L@f zC!|hHo#LFDs&FQ!&Ty(yIAcbOMVO&+&Ujk~K{{fx`F4535z>gpkD}6U@1vHF(7hv8 z*UfP1ra4omIg2_vqU}u`;pO2;t%&97>Y9$$?v_YxMRVnp z>!&nT(k-{9E7lqwsWTPH2v>LXCMSoxBM?)cXg-6+!#jVQ7&Eb2F`0%}dun+c~oS z@@T?CA2rH^3MIQAkqCJ?7QVi-vvx|jGZvo`PPE6TTp#V}N=)f&>RY^cdEWLFfqKmI zk%%St%S5cX6&~8tg%+jmVQ(Mups;Q^4Zt9t&TvJ2A6-^|6+sGMDEN*zAsX3tsL*|qdM&`rc;P=j|P>yF;W*cEw z+IBEWM!S7oJ?wd!JT;jfdT1!){OsoS)OhISa|{BDeFKwuZe%s6bTnzh`NnY+Zg*@w z8b@XzX_uijYR6=+_lTzHI+}QaH8t|Y%^50e@?P$uNG%&W?n0^a;(6fm!Z1a zbl)?r>fFbjr>tp0yAH_Dgk{2|JZ*ZISg4;SIX2{@T)?-E(BDeQ5S-$ zuuK;URbhoL6uB$W#g)2H?6#q>N*798>T$O&9HRg_GPHP`FhWPIuRVHlPbN?(Hbts|&TNuw57GRAHwsOjU(lx-iYHg3dF# zFhliiP#4a0Z$>-ccj(#V1iq@~VSHc*4O08{A~X zwCtE`9Jk^{^uV{R^_bO;TdDIaHR}vrTC7WFH7o1;Zq&t1>s4`(i@Wbt#Q`q<`3Y4V zUVp6W=tTENx|+*Zy6>v;t{cj!o)R7JQTkVWM>3W&n5J}PDFH|y7?tUJx&OT#UuGL2O0s!!J`Sq!B32~^Rj73kLl zr=(q~$O8&2&;+OCW~m}?C@`Q2PRadLMQxE|6j-P}gHFjaQbj&eV3GO^IVC@(D(dDT zsR|)JkwVv$V`(aadvq#!PnZ?Jm3n}g9domp<55&SSuRYm+1;MaoR6Yzt>-4Mn&el# zYSuiJTcg^24Y=yz1h&5R*V)WxQPl0O`){wB_2pP@jq#I?vR(l^Yy3CO&1Q~AQCr`5 zxmQj9wO%#1Y|X7v?QRFI+AU%0UwA5;Ie?;W_qHE<)qL^Y+!|&55O8JvB(`yPIqnx@ z{O_f$-&5sPbMN_HHTO4p)jYV)t7gZSa%)tqejRvLUmtlXoB0nYD(26GS;(W>`EEAz z`@%dV%mQY9y&OxqIeuc&4O;;`tM$j`W;5y8s+h}#DXl-=p3R&u%o~I$t$%AXn@H{uhwl8h{2d8+|{AhM=4W5+lq%q~i{xK(vImSJzOaq&FVs)tHIcbbO)mc3))k3rF>J(g?HGS!wBW4Ol_l9{p9PNso56C7upuEP^#3NFkj5=Lqy*^wBK$}Yr% z$LIV8dDs2lF(q`oN}F(8ZcT5Zr=}y;T+`mtQqwnUW@P5{s-9@;s-|RBM=ajkS2MkO zR`raUSiGg9w>9c0Iu~l1W64AoLPtB*I5Xp;8#>^j;~RahQ{6&+NhDiwT!UjAG@e}B z9ZevMp#Y9`A&ZWpGm<4Vp49N1=H6IGvMLszM`rZ7OKY^Ht2Npafkm=|XDX&rI|jM& zq4Llg$5-GB4&c)r2!_7xJFPr)Ar*qj;2%Q|`A!?VNtFhI58Bc{%2(lr9>jm!)#nb- zCy(3jn>a4C8eHFt^by)YpT241RN*1BplU)23T;;vlaEtkrb*^PF1czfk^M_T4?w!X z3xfXH4}`Y+I>v>jQWs*+hj#cDjnnp@S9Tk#o3Z0k;CYk{||?Ut?6$krEq;|*IEWc6#&(c79twr=&CwiagDT72}j)EGY~m|*nl zW83=l1EB|>^WjSqHxlV;Yl|eE$fBhY96z>3x|2Ol1jkLWxP#NbNW8amL3~ksLHv9= zYf2#e>mti>3Yv&rAB7rG63M2XR~(W7orX+EcO8Nv*+f5rf*?=vvK_IR{4Ob2f!FMAv~ z3sxt-@ve*mqw!WzFg@pVbj920XcHP8P3?*Fu!$dO>FtTMbanK0YOm+?TKgT%$$6_2 z>FQ{uxx?Wi@>;UL8(Q0=iDgmD2fIR#G{U)e2WQR+3J63;XH(DWXphqy zXV1`3)JbP%LTH3p^)z2}P)*0t%E)y+v1C-oSc2vrEACR&_eDB(92FJWMyT;b)0*fA z0is8O7@0NO(MNUZPDMJpT2{-1$Jt2I&~1{27V@{b3Cc12aWR# zm=m9#12_!F+S#6#a7qsVca0uE+HEzfx;mpZiM2KSaFDMPl3iULi5fhTqL?L|aq=@t zKbxc@bnD4%>Q178^DnwIydbQegW;*Qbu(&bPMsF6SdM6KY)WdpYTE3|a8+lrHy)j< znuxWa*woXqYA&9sRWqlDtJ=d=c%02`nLXQ>StIzfe66R3W|F3Zy%1~dTcExuIlrz} z*;u$}af6Pj^yu@(CArjzbay3Wn7RI@J5xt&nq+r~7pR=cOwR?~ZW8SytOGhObl}oW z!7*U1dU{oftVuRCcSPleRRd;zR`n=<1heUoO&(^X5EvcAhR<(aBJXL#v&q;@mx zS!!va?_^{ESslUzqC=(^ET8KcR^R`Kfm{#Jti+>zSh2_hGpD1m^n*t&|LJ>Ot%{NE zrq()eAu!)0pig4D79Q)G9wD{W8}Cg-p-ZbK-Fsxdxv6D!Z+D)>#Jo?`^NqH1o?E}% z@6j^1qW)^n!ws2RK`(~s$6oG=qn+-YzhJ>x;R@Wfl}Em5X~(FJvmo8;afH`b=AJOR zFf@SeDIIyqv6tFepF5^(vu{C3(0_O=D5RP<(bl@ac^|)3&P{&W_vT4{+WF>5e!Z#9 zsqy24*-m&xfb|SMkqOfnujMjcGgP7@P2x9l882um#qdcuzVcT|@P5Xxu<#v>tNlIl z!heDBZsvcA+YU&{C{ z3%{1}eT?_%?l^Zaz7mpBSbgH>EsUoam;2&%#`XwjF%vkX

w$2+}B z)r?E1f1dHhjIV^GRH21)4dVlhOWfYd_#oqW;Z*5sj2~cJ`u`f^1?v3}Z}QCl6XSFg zO)0EC9p^*F>n%KpGL37cg^y!A#dtm2`84B$7EVXqWQYEzRIfhuhu@KCH9%zj)|GY3kSzQhjO$p8Op=^NYy>W`A$26_ z7(XAr$^-BAz}I-->pXBe_RrVu7d&v!XPVb$t1f#dVLT|Onh!Yx$CE4b{+GK`7^#l; zJ$avonH{#hImuYGYclrinv6ATo2>V0yf3qQf22CSOUvzjW=Ds*te#|9%&AG+vuiTr zvi4b7zR#^2NiW+Y@^X^3V?^&Qo7DewFLUd-y?p!7Oiw*(N7m)u=IEw3@Z2qLf|vcY z1+ONuT#{p-Yqe86YDaE56B9Y=x^Ee$dlS$^)`3a(+q(6hob{@%nCW*g>xJ|vcE0*G zAkp1}eRrGF*3})2JKeoFTy0Z(UZ+iJS~|LL=)+0AVWpLx9wqhsJUNN$1z*7UBnw~2 z_<4-ebDE$HVM>J4;kop)(ZEgrTy5E3$M#zc zzUiN}7XM!6-{`@=+v2~;{I7WMX}?WL#v8_Whm@Z5;J;?^S1|v_9(>xLQxf|F%>SbY zUpdm??`3{~9E?Q5^bhUNDT)2xGQZj2oAL8ii!WQh?FQepKVHaYNq`&E&c%8pJVV%`^zo-?aa@ z#g}+^(t|JSvGhmc;a47f`mu}Ie~E`;UgvE8oXWV^mv}hc;G6xwz~Wy;ibzX6_*J}q zh<%BNvlzGgld$*_4}AvT?9am%U*chx!8hk?$l^;pyl(JK`=faMkp4?N9M8Dj|0;_w z@i5ikoAzaX#J;-|Wv6K1vh&5)ZQ(x9u;r_!1A77<|+IgBD-n z;Ts0u^yhaizQn^`gKygZmBp8Mc-w;?uf#(!<1}8={uGNZ@i5!qoBdyE@n7Qk zy~N;~_WLaUF!R@Y@K3^zttd(VB_1X-ZqHYX#g}+kW$?}Z?6CL}58pKS=6Jtv@g*K! zHTb6ev3$@i{g-$+m2tcOXIgxThdBn{w7=ZqOFUfe!CzUAvoEJ$yyLf&dvG{AXS?380{|)Y~dRiZ?f?FIS#um{4vHiSojN!f6>B!$oTyh{=bYrX5oE2FE21I{*mW_oL`9_ zma?D!&Ensqyy-aqVc8e{Uo5_?FClK(8+GwcO8( zE&iL_zlg+)1c3Avr>}Q#O8E*^Qf8FB$j>r28 z%YHZW-?8{(+5Y<$e}MUiE&j!9U+y#M&o1UyvOV#?Jcnj5F8tS+zrf-zW&caO2!ELQ zS6TdV%#T_2<$Dl${!4#e;{I>6_;0cO9hQAr#~-u!Z!`Zni~k3{ulHK~1I+)q#ox&O z{f)&x#Qeh+|0>4id`$dPMj50D9A7ftNsLcoT==z&PqX-+=khrge;MktZ{tKCjOE8?o`IbpMz}w9E<;)?v8Vz z#h2f0#Vo$;t9mWI{GRJBi~miw|DeSW^SnG}@#nGszhm+1nZMWKzrp;UTKtvFf8XL? z&HTSv{1o$x$&pCn&pR1Ep7FFl8J}eF?_xjKS$uh@@^mWu^3F)@mC*+h+2<~*@_Xtt z7Y{Q|T$ArqC)Rf2ciNE29xYc%t|!{jRGp-sFju!WC7Yb;=0w7&?&;D6RofbE?ro36 z;%!~vsC-j%b5C>)Xr#U73=+O-ls&yyFgG@>(h`%?gu&5x^3XAopFD+W+bar=#Yz5+<4dX^&SOvUaK z)x8p?Pscfj<5-t+x%3;7eEu7_SZh2pMoaP^&5`ZD3xMTozwivLS8i2WMTef>Hb$DC zBF7@tYLWi5xhqhUum6qBT1E7!|FmS-{ikyi+a_sV!0lgPO{~qO^O$_?_i_8<$ruu~ zPg7~PzaALblzt+s(%pP0_Aozh1()_k-inHR`e)LQjF8MVipruVa+`rsy`(7XOIf7o zN%;|E2(#mN73YS16@ze5>Pk$%(f0v<4SzG`A0BWx;9smFU 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 6eae25907c859b9fbb2ca99473a4197fe99e9ce1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43464 zcmeHw3w%`7wfCNxWHJLJ83!@i}=-NHipAGC@$$D1@4# zHhQb2y*}{GwYH^Ik)mP{4c2NKt*>6SjaJ*B)}~4=wN}3WT6^zv_MDta@bhe14_>anu5PsUdfo{jc`KKk&-Pm)ioqa<=IC>B_-W-q0DM3M3@GJ<}7FlCp5iK)uTjFjiW5#auhB{;WX`371LC=kJ?6mE0nzz-UxD(j}Q?H`PZhT zOGokh@d`>0x`4Bw5l(2D40jfARL>(lLP~MDDlb{T^r-e}sA$i2dC}<9G(H@b6KPCx(S`z-rN%&Kf@Rx!g#-H=Z0>iDI1C#J4 zCgBT=LpgQ(Owm~1P+c3Z6qR-Lv072z6mJxzWpxd4QCVJ7*BBF(mo-$!L6llFO3-Ly zytE-6T~k_JE27cWYwBthCn^>%T~e?hIyHA{?hLBE*Z8M%G)D9faYZUPnvSjxl2o~` zI20{mKKW)Er{qs|NeL&2M|gdN4ZanM5at+s@*92R8GQ09eatfW=6n$`_-4Em8GN&z z#Rgx;HkGl;;G@CTQDX21SX?2BHhvT++LGFGepnQ>w8vAsH$qsn@tMFrLkY>lGa8_B zcx)WMnWG~}QND_l4s;#HG4>M5QLLqith7MX;G`Sw6Xyc)bqSp5>^Io)X z7wmDz9K7f$5*_Z!9NkR3U6j-Mdk^`bU)1_^(cTYEE%J00y>zGv;N7HH)beut;6+8P z9TNYp!Z*)tIWG*i9J~_9?yFFdi#k#p!18>$kNUT0u z6T-|7hQ`LiFFYGJeBr(7H7@e!``GL?AJHkK^~pJ39zI;Ozpz~tqH_BSpYuuD=?C4& zQn4;56W*&vZfPNXG&%?|o9q7kpN9{3KZ_qJE81GLWyQ1YMK=^S@5v@xt^1|k@l+6T z&z0P64>4K`yNfn%=oU?xPn`#T_w{7$GW-;6fuwcsZko>bP_v(^BKb$X3WDCAcC(;X zLhmo^>VadZ7Bme2<4{{9B0fArvOJP?E3r;d&6BL#h?QeC^n^vap@Xej?eG5U7pP_@ zesncQTGc!SfbK#|ckk}GmS`1;CK#fKCE7}&OhZI-plo*+i4GcNo#D-z3pJ5OuUr$Q5<8d;_Gdqon~vbhMD`As3gqCXgaD^HAnav8g?C)AevZ z$`);G_kfkTvy=K@&pj||jkO=fcTtQ(+S=)9_jK;+s{kw^Ty{ON^d-;d5??qqcV2J8vlV zaPvz{)U6W5ojKXA6;!$(cQt4?-!hocpM{1&M-Nl@#|uv2uS4oilm_63db3@*uH-M&66W zIYd(aIFviW)H5zwK9#G zI9%%>P#aN`jT?F}?ld)#WjaCFitK2=kmikU;Rz&3xLssa#^Gt#a*6C|zRb;+(aB1c zXnWeRr(qz@gCe{rj5^hjI~|Y28#6ohpaY*c-L=F<{auc-9B(0OHb@H^%R3zBo zbgeT}>&((RCu^NKNN}O^v`$3p6lk4=T4xaw3$@33)x7?g?Xkpi_1N6c;IXt8OYX6i z$vrj?XyrixV{U(J)3elf(q+_~m@vET`m5ddj@j*Ph?IkVxFON@-YtdfoqON)A{@vu z?NW3cBsk_-MllY@Tx*DIf8$yI0*I7j!cEqrA=*uBMRv@o(gr!E+4>}o`OHDvP&ztX zE(KEKQ@FgZPnW+Yxy#Q5TDj$*#7TN@7rCXLrNc1M_bmPJCv3@WmVN^wJxg!2XK7WS zF-z+*d737-=wq5*V3g;GhAKm3J2^+gGKf?(z&B|jnIsywoS8*)t3 zZ$hM^AvJSz6B?yUw5REEiiV#;v7==h6tX*7?gGi{Xt|rzJ6i4mDd}jr7i3*W%Y7hN z{@xF=y`$v;5Uh!}g8=X!AOJiF0>BSI0C)%lfFFVY@FNfaehh+wc7Ooz6A%D?3If2x zAOJi90>Gmn0PF+-;4u&sv&CH1b`<&0N4Wpz*8V7s2v1=y&wQQ z4FbSE5CEP50pM8>06IVb*bjn&o&y2k=O6$)4+6k1Kmd3F1b`Po0Qe;c0KWo3L7gA~ zyaWQk%OC*!8U%n>Kmd3Z1c28-0C*jw4MRkWr4$v1FWGTOEY~=E_|J$#Tr>1>>S<0M zhmQiS;xOclLtoK%bSB@~1^1z#5EGep9PXo|Gr7K1Aw(lNN%jzLveLJaEiJkL3c zbXhGu@iAANi*$tHJBG*+h8+;8F!X0`u1_9@w@VuohN`N4h2a#VMB0FpC#9j(B zyjn`j+`N`XUagkwE8{j&oCw8^mIxH!DDy$!Cg8&`{0lWkR@KO-K%Rm4x2LZeS z1n?LL;FTbNuLeOSsz3m*1_AsM5Wp`50lWqT@HHTS*Mb0E2LgCK2;koUDZzC-2;hw% zfX6`qr>PNe8XCZ9Jq!3c5Wv@i0Dd_L;8%dG>u9+W1n>CZde;WjqXafQK zCJ?}H1_AuvKmh*^2;jGX0Ddb7;NJxSd@Bgx-ven^lTK>yNrzajlg_*k|CLE60<@ZR zhW4Ix=;V({r@g;PXZHte#ck609YijZjw;MC>B#bE(n&1RWztz}6zQ0BY7CKM(m4wv zHR%NUoOE)e4VrXRRUMPg4ono*UefLZcKaRY{@+2Q&i%o}Nrz4pa&}5R9h1&Z%f|lh zlaaReK*OoD2l^3hPGAqTxftbQ4|JoXotr^7vXu8gNsaeFDS}qBns-JEzn*wR8G?Vqxc$J4I^U zLoDo^s_uCQre*iM{zu)G{oRiv-F>UY*t>hQ)dH~`)f{NFz}`6xlc>i)MJ!YaiC#5C zlPuA8674ob<1Nt}B)ZcOjk837vmx4Kh)%IYc_gYfMAIx$J&DdRM6)c>b`ni9L^i6M zMA?SOUbK!}0ntDIpm%8p$z57Zdkr|9V-lprHF9y8YXTWWGn|^;4yYxSF|*BrL2IZh zU|6a5zLuv+YfFf{Z%?ranj%43cAY89f=uu2mZ5OkwZ*k9?wydCU8ZXH``R7$?haeM z)D4yHbXalh_sZ?%&`P874;TjQeewuYx?eCvxt8s9B>D+N%C_GAbg_N9VZfgIwv&N+ zLuAi=JtSJ`D#|$rqLU5L601ffBpPjq>^<-uBuX(v_N@0Bi4MGH&3f1h23<OxVhaf38wRfmM6I0R>-yMz2CR%t&yhqWa@Ce zn;}Zv&BWPx8wL!`q)P(nD}i$jKOAjXbNJyxL*($o@ooj(=`1M0;dj1kM~uTM-!w$i zVMLzw*eTl~>eZq<`YdRfVa-ucgCTMhbgrw2y?>4&a(Mr7hREUlenaH&{tw@=ydV2* zgR!uq35GU;ZST*=Aay?tMeHrnb}Da-PDO$@VW%T;9o+z+?bH$<5((R>tV7$WtTRvR zM3CT3rUE3`;6kmlNb3}7ozt|=QY6^m8Cs`U>nztgE40ozNL=Stp`^EEAGM>)+?Gv< zuJ3kP(WP`8H{D>9q9@=MUFS=%DNl&5lOfm9H42sKV`9&grre@yIz)uTW-pBhZ#=oo zzAygH9#2O^ePW0l5%oGm$~cX3GUN4z1&4FrVu&2heYtI%JSUm)EW?7s_$))@Fn+9U zoV+oa@twc5yTxJrO+(}`-tH>mu)NO@Il}T=hR6|?b%w~^lwL;BwgMu1Q~C|p`*IhM z;zTGSofuOq8x^-rSVF44r4K-tK?P3V5aC z9`J+Q0=`;;Dd4p{A>fxlt^1`2(v(}kFMvp$eDt=nydfEaNxjwWG6VeLP21HS zGeD0aa?Aj)LZt5leZ#&jsY~V!Z*sY00k+aG?Fg{T4Ur?jq7dob?zOG@JY*}$^`C)v zgxY9BGKV~xwoTSig4T?D=Y%#( zdWb{&B$LR0zmG%}C2m84{r3(e7_|)vM%|4BqwYn5QTHRksO?BF>Omy9(1(y<)Q^y0 z)D9#V^;0Am^#~G-+KB|Cb|Jxq?nZ)9PawglJxDOB9SKG~jRd2fL4r{oNN}OgA;GBU zkzmvdNHFS`NHD4s2}Zq)1fyO-f(v~O2}Zqv1f%{F2}Zqz1fzb71f#l;VAQ)vOwwVk z_qg-zur~L&6Tp%dY zJ#7Fk2LXWgv;nvh1OVF82H+|X0BBFUUhZiFKzrH%TnhpK?P&wB2?PMz(*}U{v;m+! z?KTV%T@348W&;tT5^pbi;O2p#*i%7(i+}((9|X7p5a1So0JjhXxIz%%7J&e_ z7-YMe9Q=qi+F(1{o>PdWx1ti}l<#!Hrkqohj{DLf+igxcSAuCy(ei{j+~?g9cgycY!fy!U~?8}A2M z(b4h%2%K^|NDUr$0fGBI2m<&IKmdOT1n?h%0RAHoz<&$^_zn=je*yydPeA~G7zCAg z1O)I$K>*(g0{CMffbRkU{AVD5?*;*!p6&(w2@t@a1VJVCfB^m!2;l7?fbRtX{Am!t z_kjTZ3<%)#Y69RLAb{@&K_#980sQA6fIklc_%A>Je*pyW7eN63B?#cZ0s*`e1n`$Y zP>Gj80RJ@z;IDuH{wfIIuYmymItbvjAp-bsKmh+w5WwFAK_%V-0sL(cz<&z@`0qdf z?*ak*9T33Z1p)l`Ab`II0{HtNsKg&Y0RJNh;N2jA9{>UT0}#MJ1Oc30p#c0(Ab@`i z0{EXnP>CK8!2bdQ_$MHMe+mNlK@h$BZ_^5IL@Tj^bD2Dnk09(sB30u$vza zmSFNjEl=>nzdUFA;cb1NMLVF1dbs)FhY%(Dp}qnSrS`e8)?nCloLIkWh#by%B}Dqf z>f(&p(vy2@7?fm};D6t5H^$+Nql|(b&gg?kIpg4@&iGryw8I(q86t->ZZ|{@XS@L- zwT(R_b2D8V>tTTRsC#QG$r&pw8~eMvJLriL`M%-&bLY1no`24g*3agzT+;gL{1r=Y z7@Ivhj8_V8m`wESrQ_evf3s-sKYjFuX7@@!i(38^AC)C);!WcxWl~FCNV) zLNp(bzyHABUtnw;ym=n}&ch$SD(WbJE^Yn|y01z7=AcLTQd0eCf#85FPwJ3Bs@LmD z0ao~Qf()P(Ax4c%8yHLp3<{(T8Zc-AC%0t5U*gD6x4(&!hRN{Hb1_FNOc1&Q$&cyiV-#ruaPIQVWcOUsMiyQhjLw;u;@4FqM46+yzR99!tUZ z5bf| zK2w|}&TYP+xm1)lR~Q<7CQ*83^KfxY^VsHmfhToPn!kB0*G1z{CsBmIvmm_yf2;9# zE&gu8-#y?zhQAl^_a6RI{|o&?@iGd3a4yt=$AH_~gfxxC?T{HqGsPp_j~j!(nfSxl z^>NG=bDHN0^iuNzQP{jl6g4kFUtz419LF?|Y#uF+Yt9i9nkS0M%{W7##2`j!n8VA$sjUR!~S>9L8_fx%o#rZQt{xmUlnpjd(6I)$c6J8!3TLE9r&BeDZ z>dT|6W3|!B>Y7;Nl=9l*hPv`->DqNO@~2LzZCJXnctKP#3l>j}E+5+%oqx_M2y?5% zWnw{TZEamVT;32XjmN^`go;>Yb!{wMURPUD9j~sdEv<>xqQH18r*u-;q|3*Lqifax zi!U)WUK(v|DvQSIt7k!`*>!7)!Qz~<@slo}R63qQZf#w4MYylZ@bu_3UlpJC(pAaK#TtI%VUj6@Q|hR@j*5pkJuc@w` z6mDEyJL&RRLtW#fHKps8E?w?gJ}Xd-)p#_<;>3zJR>NG*c&k8XdD3J8E?*99PI*;n z!}$EEClPqc6mqUuV`F%ALtRsS__FGFRd`ys;EYCeCjT zLO)g3HH34}(c$X3d8bs*S$0bG#JN*>2z&P@wV%x9s1BJh-s=DH7mTf#SbdQ!qgQ*X zYmHtgEo+pGA#>abee0vYq2DwshdW+%Wug()l} zzrS98f4%kE%Yle`>S7na=G}PHTz#(f9LnN{;sYq zuW71?h37QJE3ih&t(rGLoM17l*Wd&j$M@5ikM{p}t=I9nwRm+omc#gLUM%dodN-T$ z-?w^KW9&Si+KYHB_Z=$>()}N{j;HGuYvGFZSwVH&ech^;xek4)jJ|O8gPT4nC(-Nc zdSX(zuGYFFapJ?_BfGNbjXT0CizMUBb+Q+fxSUD6ETL7U>%y&{i;}RTgHeQii4h)W zjukF5)I|pOzcG->Kn4Q+VF2XF1D43c_0rgiFpsg>e{#KRT_ef0Zjydd*GYz5^XjO# zKVV&Htkdo56mkLcLdC2PrIW1h|DU_Anqc&#HEKtAEk#4*?6+R#CQih7n_9^(Dw1Ch zAtvS3v0>aAb=RQy%GX4$m-MctPjb6Zk~K_l_r5Fml`gkt_i^2(FU4Hzny-+?^;DiH z5pAMf^oX#h*wgIU;py^(yb*7`cbm7ck zd+|wA&{y#C;85IBSoj|FK!<`yhv)L;!m}>qIc88=pv{vOB0k+e?}Xh6q@WIWeR=DE z^n3mTFRYPnMrct+_Gy^|FAFq_Q;$An!n85iaga6_g2qtKbBQrOBedDOAl>g>j*_Lk z0_@u$PZ?&&eTRpV0+q1|f6eWO4=*Q+8t+?nJju!Sz4+Vp?%~5RP*IQ(`nI<)Bl|{Q zVMh3dl){Xh>r;y|@;3X6GG=W|Tb2>2$(S`iBX532PC-VvAR`<41sMVEmyZDNf*mi} z`TF>u*#l`2u2+{|Qe8=X*G$tvN>G(5_2_mN9V_sWS2{-UFMV&lgi~}2jSjdZA4e;i zt>ol~bZGfszdX!$61RFI#J0Zq-tLomKXc)iUYXZBc)0b)$3R8(4KZ?k^T0_*9wjAA zwNLgawvJ1h3+OmX60t5N!YR!!QF&c&U0zV>>pY%Z;Pyn6KHfCryzb8)mCsRf1^;g+ z`aAZ{g6>!2x>L~(MPF0&4~l-Ks9*WZa7D){I@9o@#S0dk9L~WP-^Yii=g!KV5uTct zKO=AE)M??I<*|xzQE6QACr_I_UQ9xbc zN&SKF6RCgQ$O!X!5_Hjj4!jiR2YAdpxY;aL;m@sN-ay)o5P3a;ZA83jPY_8-!$TKf z`tN3D>aRfX)B`T5g*TA;FfjvZzmY1~N){4lNRtUNxN)g}+)s}zwWm}w`b~foBjrMw9nT4cJHp?fQ z<&(|w$!7UvvwU7|R*GzvPc`dZ0$)#$2YAm%QN9}}32W5Y)PO&53uQfiYP9!e^m0nx z14yRbh~yiopXH#+fe3z5|5gUJ2z-E_)GxkG$-rph|C7?80R0aLsb5k$JFq+r>BE!` z2L~hCQ-y~zIlE_iq;jSx_!1fRbEY`hK$$eo ztO|CKwVIMzeocDOG1Ey9fRTmiMV;MG)}DV`gU*&5tT znLN&H3*JDPe9mkSeupwsIkO}9@06M5nGDRX;B91j2G^}U*iMp@JlCRxXT*R8YTdu5 zeTZCk>Rr^xzzR~ho01|hnvnNUa|3~=NcDj-utUNhpqFO-0UE@CG`3XjL7R~vE)6Gh zZ`Rx_aJM3pPP*RbQG$OA^?~>2l+2^YU%VS2_vbI7T0>t;-wBzc~-Ke@JGtAkZs|HtA2+!a=CjFVc5u5%m!>gZvv1>AxlsRr5^HR<#9bfjk^%Qac9HDNQCH0xKhW+0+83y=+c2~42j8kP)Bkd$J? z0`Y%m$ z<{2vYn_F0Nn)ri;+cUTA*nQP#X$YqlX9x}2{K-wMxkGE#kS4|H{aSOl2t7+SAAOuP+qLGcTC-DY z21V#N>ZQltXU*_}h@d0A9of*`)YCsZ%#va);RvR-4h^cdqBQzYPvD91-~@fmS~CS% zZtFa)iPCN-%{^zc<_@iyt2OEWM&bU${P7UV2()it&1bacD$=|ilAE>WXc1~7oBJMM z%`UBZEwZ7{$i}mKSt1sywy`8eJ-Po)mV`|STkip%>v5_GrI6EW=Xp#5gp*A2>KMhT0Xu6-=U?ja}9kviv4=|`1SG;9{fLZ`M3d& z>q&FEt>-qnMxfu_0kV}xWmXD+AIj5G7qp#px z@eo{-@$&JjtRolQ#>MD$~K&4ZrvINx?f);5yodE=b#Y8tvvT_NkOnk*DF zOf5WzjyhJ(OnTu-t4A#y{;m?{pf~Bz0=e*{UgU{NEj+0oId3mK*Mg-Mp4U*)T6j{| zNG$(i;kg+cKI2n2G1FRj-bEss_NmKQWGy_O&?4$R7Fi3=*R_Z`l0|;0Akse}5v@t7 zPnl`0Nz=h$5p^$%0#ZSw(*l!4)YHtgma7X$L^Y&NXVDP;9W2r>CK0u}Rg0{Z>>c1> zUOzp;otwU1Yd)+st(EL^tXZ!$?;%a9|Jz#ATFHLGn%8N~7m-yf*+G6PjlMuiM>?W3UCP?H;_70Zxm=d=B zF!*d8?UyUr=U8*VQdN(8kX0+$cUcljkjRzn7c3c`AdxHC;RukRZ=@;Vawme%%TtJbtuvUjj%yVhJ!niND2Yfbc&T**Ginq6A+9av*tFfc{;LcCHpOw zbZQAlFtzngZNpm0KEj&fOx1#KBg?(=bFFEuWPi(=d0O*lTJuw_X{}@fyc%4nHGfZ< zw30m*d>&_OB|DWhOSEP>vT7x}lqJmx61kGCWXU#D!q%?MK6^1xFDF3BR*NcOD-BRpBy^O}y0Ov(3Rv)?}uHisaD(mb9e5C@JEOR}cW-3Yg` zh6`=eE)4~z*afF%qB<~3gzTkdd3+fI2U3AldLZ4hFbiryl}%leMcDz`K8A^^Lx@4T zLh0jBGi;&REjw{ULd!B!6IvERLsbV*LkB0edx(;vWRhmdZlD5(<_g_)Cytnd`$EHX z7yWpNw2dHEFl zf4JBr1x^=%jvXlh||0nyPE!ldEgzQRC&?O%<{7 zx{6ps6c))27G~5fdSf^{kQG=kNZCe-0eMK=qB!|HvgSY z>KowA@dWO~zis?`7t|*V>-LTr7Pyp*?x7$22if@bP8-IVyUh$s0?Z0*W5I;sOlF$O zD$`qe@=#LtEeqTMN<-ug;59Z=29 z@|D}HF=Xly&r#CWB~L5);5Q&6Uf$$-fY9xX$kdOa^$wglCA4}rmaN@ zww4~bEpFpyDI<(}{g-VWe@EcX$2pQ-gpd7Si=_Pj(~+dFkw^3$Nq<0q+yx&xVb~Ew z6GarM%c#0HaIbg5&<_HC3~UViFtCFhnY}siIwe(jjmzQ;g{U`h5B++_ad^nUQb8ug z#;>o+_W04{Su2JHrg_H<4LlxrKk!E~^CVk*gMU>dn?>ErMXBJHA*!?tH+tMDJ)C#p*p3#%`W(Enl__hg#n-ArU7-di|+iL7cBjQ^E3`4Qx1d;4y1LP7A*n^nn=r0*HBD<|2luL=>|&In-#Hi2x|#|a zCcKfLODU{a9cwI(q03ckWrcegvsw##31g+(D;n^=eIt!I8~|>6X{laoxQ=ijY z`1GzlYhBh*9gj&rX{7PPLibFr+!8tdtkhV#HrB_8%6ef?@tTu-Yr`rpT2ohkY0`F5 z=To0f711?V-HOWE(lyd+dV6XgULZReg}eK>?E*=9RJxyl`FU(((UPTwa)1(wwW?_pj4rCLYfRoka%4H;mXfnV zDuylVIufkmQ*MR6cLcfJ_wKS8BDywST2>S5$FWrbc0Wizw)4}ufp%U7f}Nkq@?I@S z2pd~_7DpX@vO)KovrFt2n~`q$6Mq>(V|(`r^?7Y<9p+nV_sr?$%**p1jX%c@&lS=7 z(u#cOf?za>08eDPBuS!PHjc__s%>hF0ZVfUJ~qKFR90GkX;ZyRa2mdopY$rV_lGs? z)0Oux@XG!^V$sEIcg%hJul0A6&GMsJ3Nn8~>KRdBiiB}AC zd7Sj{;fj2gH_}V)!}ZPzSH4fgUHK_ut1Ca%dT!S%fs-4`)goc7_-rkoTven3QA z`9V?Q${%1oziSra69a{QjyaJ(NVKK8m76Xiem8!G_55?9olMcJo*qi%hs2-@-0Tb% z#jgAz*7MYfcCv(ijyjP)RD>@sFfd^d85{!6*A7ErOJNY(~-}di%qD;JdZ! zp(Olg*iNR<&%upBo{rz*&x6MZ^;2)y)8*rk;_GMJa0h@7dIyH|2S*~D*Ze%i*Uz_U z{!+!)Pq%44eXfq|JkTxJ1n#srdR?vvsOICo6uqK-+th zuj5+Z?bm!A*ZN++=IglDclMoet?%n=zK&~sS6}mWTp0bMou}+;zK&~spI-BITo)^S9bY=G>m7U@*KH2Ij_Vx`zK-io z2Vci^kAtt{THkqh#$ui;wRQb`ucr7LesH?`MuY%^d^gk-kK{ZVLkoR0R9lHXNuK&*sBEBGGA-i^!MP0@mWjf zI+I?h7-FkgsRzIhLEpLl{81A9E1BPW-Tvn!`cEg}zXLv%>#XO;N%Vb~aKcut?Zgo9 z2YWNcb&l(W(Zr|og5qP^=OY(<>d&ru5zfaXThK#hA-siI@96(Oa(#MVzsys1^c_?E z+FU94WXIW`Ym~me@qDf-mtKx?8<&2>{|NlSc#^TH3Tul-I4PuZhKD6}dB~&A?ucn-X?OYpbKB4GpF1qcMC*XuYUxz-C>vqG`>V z^?(?;C^X{w~PKmuyNn1)r?d^@q-n%IM$>dI&D=tY*5-cXvF=4yUDY30NHpCM8x3{b>Tw;&t zeaVDfJ@<`AtJRM3&;nJSQAs5eZ$=3$CQHQ<6xN zHO;!WpzfCRg4+s7>{|*bBH`9f;vERb4T6Ll60B)$g*!In6J`%%w=Wu9w0!=u!f4?c z3o-46r!dmqyQAwCL=@ z710&*3zimA33zO$JX+q^#B-wjd~hVPc~8hJy6kD7p*F-t*F5rLE3?)55h%h z>)5P2bwICO*{QvEWuwuu#zs{<)lO8_)yEulY;>zuCGQM7tGZ&@0yR=cup=yT8`rPF zjRnwngQQhDg?@-N)QenvggTZxzhKGacHC4frR*Th9GcUf+ncKmbcbO>1;4{L6$N}T|!DuC5F ziI8VPiO}gw%Ap49rE99oQFI*);wP6&krvVEA{Qs-H8|NqHCEQN8sO4e+$q%A>e|XW zoh~gaYlyAYIr{dVPSfqc{|yK21JasZuV-g@BghHtqch>}tjLu7C0+A40U10sYT;LS zBgkQYLgB-lvw!sZPjm2D`UHI38(|S$hti?1|7DJ@2@;Qm$bN=zQ0V$^^+s5MUdyIq zq$GHaULJTRHsLq}IeN-f<9B%@$kF#Xn5Z|!@E|L))OL;6*Ky~7hb#y}Ry%ci#Mu*Pp`w9_-4=cR0{)#OwM}kx} zUf+KxQFz@>UB0vZn-so48C;hV;nX^X*WV=}Jg%yG_1}%)QJ+x#=+O5ws#Jk`|3pfA zkAEu!CSKq7XjAwd8mOqgzSs0S4t&HPVa{UiZJgPHI;8>m9ckBG5ID?Z}vTeP3qK1yXCFsf@I<{GATGzJF7!@YBh- zap>{atace%eSaxO;X76PwSVe*Yd`n{ux9!CKGdNooA0;%A3E^XzC($`S4m?1>hd)`2#Hy~ zzK*Xdkr3y2tL9ktK1Ygd>GtdE<(d+y(jT5~M3K!rsc!vh{A7zG6S{m&=}lanHdVh@ zB6Dpf6KSXJQAzOQOC|7C#|M<0_!E-gzg#Qvcj~}Y^>E_zli+V(F9EfBppxL{D!jA* z23{)x^j^Gq=<-eKs3NN$qKOelHw7n-eL~Mv(*H$cq03%~b_{ 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; ix!uLxnPYZx zBnO^>pb+lm&If-`MBjW74xjSofk+fYee&H0K~V8TLBT+*>gh@*y>lE~E!$o7)lXMf zSNFV8SbEA30+<9$!;!=&z((eXpONeg+zUOhy0G)}!uD^Sdxcws?iKzf@4dpmhMe{Z z{PpzJ!v4a0SI@tBYiI8lLUeh%urIb>-#4!OxJ&A9zWf@;G_jD8*)*l}qEtqMk!d5w z5Hd%@h@`XvTcyrup(&Masd^z887Uq5NfWu8Xp0ACUVQikI=8HVXeY+F{;Kq#h$A#0 zwNyczAbaC_4M0Z8xFiCIF7a@#C!5Ok<+?<7Tj%|Vo`!688X-(cv6y?>5>NJ~a%Zzo zWEXqLbmr7Mv%R7RqmM!=6XC`wfYvO=?8g1I39*Rk%tNr)lh5LEk3~!3C~JXpM7$H0 zd43KV10KXti2rgOILcnYato;2RnKxF%XT_WNxj>dXTV4sZ`1G>4S(PuTAyz9UN#I2 zuP^Cj2uOKy<&f~E7zbH&j2YmK}N zV~2iFbiC!jcZ&9&|nq(s|}ENKIciXVi>ebn}(aio@p)yr6Nt9AoP}ikEULPICDDuiB;K>Q6;6#%x0Vz0n8yxRT0;S-d z1eD@*G~tv=xC0s@Z1ehl)oXcpN`79$e^;`t;a@4aqT&B2+1K#T zlpJdKO(kDZGu^v*eLm4}dSZ$AjHnLrTg1Jm$9YtG(Q|w}zNv6pGrlfZjm>&!ui+d9 z(Oh9JaBH>|x*H)_B|EgiT5B}Gl4!|YTQ3)@-UT0ZlDF5^0{7A}wH?@A**)%3t9mZG z;5uMAe!cGE!)bYb=vw#+;?r$Auc<(8rFbE*>)c&x6L&G0=tDK(dUA*v#qhmmoNVLN zhXQ@^XW}68*VLhKAJcsyU+!`I`bv5PN5b`&^W8|@H0tZqhniyEt^YXs>M?0iUjJJX zVx-#+p)P6vH`V@cCz? zpCI<9{3&-m|0-g7OoZS-f&88jMx@)85KCJBW3@i_39V0eU0;7)#pFCul(fQ^SzC}r zp107N_$GhVP?n5#G_W7fJIepaBI366hExXZ$Mzo~Ll~#aIQvg9pl04b!|x-LRKMMX z`qB4}{kg75Yg6o9mH(DXxEnG0_UZogO-$PAgzEo0oj;vxlK&4X|4&gLC%u0E1NNXZ A*#H0l diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/sauvegarde.tar.gz b/openair1/PHY/CODING/nrLDPC_decoder2/nrLDPC_tools/generator_cnProc_avx512/sauvegarde.tar.gz deleted file mode 100644 index 7676b9e13558a534980113ffc38e067ba4cdebdf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4010 zcmb8oRag^%0zhFTl^op;CMYsmI!33Xr5Q+#?i4mk#^?|MLApa42?G#NK#+!w5=M9H zki7TlzTda={VxZYc%Og@_s52S=pg?tICqe#=gR#bc(db|%o{*oaN~~x&qc5HqcYc2 zQN6b+~T6t1|vlTPn2A z!dA6%wzVM@jPWM4`0;lA&&Mb)m+jRLQ)*g8UIU>(*3Eyyh3xqSCvzNlS?8n9(M-4t zJXlsz&in39W&ep2HoqQ~y;-W$_k>NkTVQHh0d?E}r@$=KFSk$*9MedU%eab2p6F>c zv`CZ{t{O?)Y{zv~ZmQGq&3Wv2R^gopsq#yvhsnsz?A)euT;Ey@Mkjrs*<>4X1-E9r zs|dT|wCr?30~BwaY;cTXx4g=58R}CRoAkH#*GC}3c+SZ8W;HMLRtgnNFD<V6F$Q=)553`lWXhQgddHi_iuo#Qwx#nx zdQN?SxC6Ej`!%A7Mxs_N!!k~Ys8nv!l5XM0?;n1<+&NHJ*8%#Fi!(hni}&c)eRyv8HAN^~Q4ufRIU$iG$}&2w#1^eF zC83|_`&qm8y|OVYTVh4|=2~YL*C7rYGD$9|pc#bwTjgFF?3G;!ltX_g- z=X*ytTnFal^K@w@i0|yi<^2i6@_vzqygtiRepZ#3A!mHfIFb~WekA?tGrv$pkkVtq zbWR6JHx^)0?8$GAvB##r%%Cg2GS-xzb9NTOmjftDLPH>4KS~-fdjg(?11h_IYQ%n? zaz2E!YV4M|;JDJMpDWpp$JI_%Go49c>p`$d{lK*Z<pEk{>4h_0QvOEl^z|{0L9d0x*)D+1+#DtT!oRViJFQHQ?HAF4;$IK-(u-Y@@@zs9;!P-5WSC~XiU!#zNy5!CRO%bYOG`14 z3-VnyBu|k!~2{(YqD{%=GbgF00<$ik6Dgp@G47`Y3d%J++c+A~<1$ZE|$*tUB{@W!vIco@j# zYIE_(x2WpoiTD~qB z^S@y}AdMqHY*ZD7^Oz;Cm+52VKSvXK3kyze3EuoXet3MUBvnjQ02{wORc^3k;05LvX9CvRfDt)KaKwU3Hwv)|A z=eXnis0ZIBH!zyXtt0fsS1jJA;zVoT#s+6%&zv?Y}9bGXtEhdAHoqzOlRysbIMH(S~uAA)ReHPNZiXC1i6WhSmsk}(I z3!bD=D?o@v4k`2e;wE55R?Yb49^O})njd4R$k`up^|3xKG8^0|D&*cFcBsBS5D5`G z!T;l91YXY~xR&{@_Jn-&pb7pZ%v)c~M8>;$(7`>qgr5mR`m?a4o7_E*9D1Ve`1dAL zw$L0Gqb*>AxM484Z#V<_0o_xBxJP{AW}@_Tt0mfegs42pFfA=>5O*q(xt2@XE$caz zKS+fo9w0(n`dUFV_pWs}m>2(m)UnGDJU`_bOKiYZ!wZMJx?a*r`+i zm^@Did;c=^l9LWcf9n`{*@#|(R%&bidrl6m6x>cUX1@6D-<;Y#s6g1Anr>;t&XPpH z!r-hHWy&@7WVr6-Qz9MOyhNM~q(OcFeX{sTd|=DYK2bl} zpIiQk!q=R-0lAwqyUK{C935@cR-c^(MU7_@B!j+LlDP9a)FFzfyIFVD(nqP4H1)`3 z{YKO>&;e?JjN5~Pom3xGl`8q4S!X(jm^djBJ{on-i_X~zA?p{452&%UEvYp&C^4Sm z_n5V{p(^`3y-%(5yF$0FlN?*@Z~^8^ zx`$?;iS=XnkduMro8kVnoezQ4&=I1{_=O@d-qS-z-v~eCu@$>|zX*e2fdGCe$Ite^ z$3t+3cVUPAqQjwahF>9DAM!f-YOr+QHx*tj_>pSed6~7p#Vn~eW9UhWv$Ub3v_;?{ zAl6Hp+F<=2o(~uF>pgk9NfO|2`b&<7nJP#&AaQ$S=DSkyTQk15ZTC?|4~q=uNf~NL z7&hG`4akWY{|p%wzj?~2!T!0ZH<}zDPhL({Es{b3?q+o~&eycvqss0C z=ts^0P~HZlb0Qsqx)91*$8T}(O;>&F19%~(i)GYi3xoXDoRST__ZArG-<z zf9m~Op_U|UGeKcPgrf#x@%P0ur!f}?=6#FCEl5-4b;y2aDWj6Ke*^6i9ifyM3R^u>SbnWI=E= zM>Oy;|3QwzX(QLGbfRPQ7ZB+9LY+oq)kMRH;4U)Bkqd+(6M18zv9bPrxMd+NBX&LQ zS@CDa4Nkdz%isa{g2B?q-V~Ey-8QNj7+oW>rM_|^C%*^|p9WV7mvbB+A;GnyQXGR6m_ow@Y z;z?~-I7A>6)Nl=&b`Z~}bYvgD?=`dSH4u_`p$HNlnv}n#p;-342IdH^-tB`9K-c;q zMGZ5!h%&losrOnjxQGkN-aDm4yyA6gH`N0|f|L9PGNd_1THhc40$Q z>ADF|$*yLSLTk&o>UBjix`#3^Mq-ZZ8~|kM;&a;O{>|Lw(l@Re1@=JP5Utx|)Fp-N z32^*d-9ap6e0Fi5_mzY8+hbfRhM=W3+IM^=<|Ufla%Tc159~tp*od^6mf2eiGkm-G zu4}5>Jo*ScJKiGU{?6-^0NR-+2kRDE)`k7gtn|#y!-6OZAq4~HrU_Wckh1`&0&J=~ zLtN2lG(!F%m-K9h>v;X$H(ZN2Wl7@T{r4OaLO{)At6ZLizr=G6`YF6e@B-HlF_*jr z0B}W55FqEtT^A!hTbImL=4bmu->`if?Jv=l2e3YB4k<++6k1T;gYMPbE9^@t-H1Zm zgs=i80kIi@&iw;n8l+otD5O090qGmFTG;|K6a)hAom}@=Ar+79$HDdYT9PB$Fxim{ zl+J&}{?Su)?R6=H*4RA~*QRyzh-l)uX`xXUZ$>Em1Ec_J&k^QHdsBWX-mygU7$I-m4gbO)_QtRc1)f+XC=O(No=J?iaLiYV`I~N zD_=*d*GxoMaQpsgGqkdXO6`*+3C}!ZU4Oa9T3TK5bJhXI7T>3P9rj~%*+wx;VR{`e zVz|IQLlccX%I)pyh*W~R|VMDw3lf@^UOk`11`tL9oh@q}0-bTxVE?QveD-~u1*1X(#j8zJ`1 zZ|xDXHcvJMfwj!BS=-8Nofal@D}9 zeLuTJ!%l0s1PbVHtMO+8*yhv!v?no#v#og`8%Lzwa;UOI4Ts+d@3nlP^!}DvO$1XH z$hgYu5nI>@a7fWn&LXjZLl`^Wk2|CX>k;L(PfW_oZ&Z9>MxK|7a8p1UiZYlnykf-6bBi*0uRvMZ~@vmWAv~@OeOQ?^tUh4>R z?R21R@}nDL!FxoZfp;Jz7u;fuXbSv&A%{F=GZgmqmh0MEqE4I1 zUy3e$c4bK-1~v -#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 858e228f666ced081987ad255617e57339f4b668..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 617808 zcmce92bdPs`Tfi`mbwc|S=zD`sZs@{NfUGt6vT#zf{kK9R8&kXD~LjDM2#&LEQ#1L zi4i3#R@7)DnnW?0kZ5!*F&H(H#K`}g`_6p#oy*L8v-|r$JNtZX&U@cm&bja0xp!vv zqAAn&FYtXY+zPyL9)C?JnP7IwyXUPvv8nmZw+Y@zuPNSpdOf@n{4O^8h!C3)`P><} z4nIo`>Uo9uEW&GKf$SJrFu{BYKfB0oFZ>Kk$WP{Hw+X>l`E0RT(D2jqstwL`ENl5y zf|p-)lGz`A&JD_OWAGWK<4>mR8>H(SqzgZ{1_cX0!}_sqd>t0}JFH*=e)0DNet473 zyZxjsx0!!ib|Sw|xKzqH;nFE)fB1Qr`2|10XPE8~q+>a=ZsmdDtRTOncG(fsFZ>LC zdV^10eEivi5?O2UpEOT4D zr~%?Tuls!HM?L|ev$RJR@bw@GuGZ0X9h;R|0gZ&k2t6Jy;mVSlfL{d*>rS@-vbXPu-W(a&RTlr;w8%#cneNndeRba>DkN9@{T+H z^fQ-v3r;xo^s`R#7My$L;$`><%;wEw(s^esJMPS7^G-W%@e*&|yoINoz9iT)&pTlH z)Jglz8#ZXzpb;#6f%*%7kt6=0U(p2H*_{?6P!xDa%TI6T)zZ(X%_hMp6K+G){;)3)8>#k7Pm&Z9)PCJxYSeyR&Y5a|*th9vw%Ttaqvy?6 z`SI{GP+#Y@&}hnBTMbn@#iaI`jKL{$`VWyw?1l z#NTX+k892E(frLO_;{)LJ&eCu^^fP9-~IWURsMJ;eh>Zo)HT07wr0&=YgT@+W9DH~ zw`|_pcA{6a<(c{BV@uUD6TG@}VffX8vTl<-Z{xXWpu=khF2zU9%AKuh*8J_U>!J1X4;-hBElnuY@JqZ<`vhgkX z-24tcS3XH2Z+TPsQgC6H%U5v^iuoR3lV@Gcce{4gRp3pqnj32_pZ>yzvd4a8JYTtr zJUq37Ue|1q6boQn69E1D7@%$v_pO=ocFoEQ-uBKedwNgouY2u(aJ><4HJ1Zf^UM>B zyH8O)Pmdu!kck4QLk^lrs7+FVVE)u1$y7?S9{z)hp4|y8uyaFuN?^*436Z%|PJ*24y5Gqg*k0t`u5c&xDg?V+&LB|t%RiK?U zD>wUPzw|EITz1LjX#TQaPI(`DR!?~!=|ZsVms`soGjb|>_}P`4yFIhBc+HgGMGe+$ z^*8%lpV{8TfLrOO=E}CKkSS}s1D)dXau(&OTI8P7O9@JmY`RgK{_(%Nc5RvR0Udt) z7TzwO@yv~tP^{>lqJ@XIdkhMpC= zx5O3EutI#0n}Rgr2&NJj7&MHygZ`6i;uwx2#Pxt_M&iEtcg|}*;$DSmEO9?4kWAcl zfWww;m!qHuTlR4URpy|Pgl!IDt41ErqZx@L;}e@t_R?d9jC_~pdg31Jr(2- z*BVejTu~BnSCY88uT9P*t~iZ2f~mv>1`Q*w2TGCg828OrnTdN9rWucMcfd53xYY!b ziCYXffw-#_jaXC+WlBXM)A*L=hchG}e%Yfm7VxNmkO64wPOLrxvyd<8kgeF%pEaZQql z`-sFnDLIq4(lp`-rVo`!{*jruS7DlwxI3)Ze8imt(^%q;A&^YmIKUx0&N1!; z1v$jkD99mhAfSM_(kOA9NR;!2(g7f@NPLjErfI|xOeHQbXc%$hKF>^C1xzy%SNHdv z*L=i13Da2O?k12-+$z8c#NDSLhq$X1Rlo_veW4(SxIZY!A#M|(fVgH!#MO|v zYs3eMYo10N!BpY`gN70J>L;0ry91^fi95%7%}3lcn8p$}j6iaas{oup+(-pE#C27W zLtFu%fVk#K#4RFm+deiqleiXX#1Tv-E-+{qaTO><#?yhiy3E8q3Db zBoj9WZ~}1`Daax2Lq*=~@j>ER zr4dIkmAJs5VZ`0>x6H(y1JjJeO|xF}5myb<*dEt}Kr(T4A0!gj5-CGY9pe6}QaQxE z1t=h{RT6P8k+_G%2Z<|7BaUDyae+a@h^u=)GjUJCG$V1>Sg-krTL{xw;tnQ|Ox$3= zAv@0Lz+nnaIH5Lc@phq#jf1;mvn5m&k=h#MH85?5`#<|FRwKPM3PE`em?o&=mg++P*s5Vu7^4sj0v3W#f+ zL|k7Iw^DqNxHf6T5lkg6FlZQYPyQ)0ao4~!BXJ9@*L=i{g=uV$>q#J)xFWy_#Pw5< zLtHBbImCVWUXHjnNyOEVxL06^oJm|o8gT?ui3A*^u z#u9fjfn?&Q0Zt%pse&Bh4p)#v+-N{SkE=)`ZV`!VEj~zG+ce?`rVo`uf6O&; zzED{W(~Ldt>vwWq^Yyq_U>Zx@BLtF(y9RIqagQm;A?_9hImBHIC?KwF5^<|Z+-&hd z;@YJVM=+JRz@TBoU9&CM#QBI@2-A$jjkR9$5!V`~vBd3sJC(R?fD?%OPC*WF?<>e5 z?j=A0aqW_bTTkL{7at_9eHw8DQ;7=<8b;iySiT9f=z#K1f_;8gT?ui3R<(fEOs2mH^j6JTk^_s88efVYqajy|bChj4?3BD`rV&RlmAJs5VZ=T3MrPtx!Zagsv#r;B#0`XLY>#V8Aep$Yf15~LC!`EH zb%@)gQaQwZ04N}?V-j(FN!%v!LE<{45l1kUxWJ%c#C^RrGjXrLG$V1hTd(1`Q)_?CY6{ zYYo$k#C`aioY#EBZGvemad#3(CT=C*1me~!$RX}Z1v$i>2`C`0a}sfjNZeHMLE^fk z5l1kUxWJ%c#I1ZS*TngbakF8Xk+^}@Yd+!%U>Zx@$FHUm_X^+y;{Kr^hq&J<$RX}= zKml=Gl89SP;?{}}64y12ID)Cf1qKZx?v-C>Chm5aW+ZNz^_q{ksW6QtZU}+o9@iRh z0&#mQ$RVz?f*j&JKml=Gqr^FeZ@m)cyru4Fe1G}5^gD+R8^52qbLdF<+&l-L!3{NW zcMcr`cq1-P^6FZ_dEK^`(G2FUqWC+9meOl@=g^)kT5#vkeFD^#a-X_$=mG4nyB1#S zF2q~dg!ay%O~k)ckiBzgE1|cO3dFlV>LgPs{}Nb6?i|`W2se%3&Y^XK&1c>GA(PxY zhjs)e)qr4Hw~i*!JBP|8^^OUF$p)I(JBOxD2;1*BFNO8nQui}_ue%a&@pld_LZZ6w za`yVpq1A-mSCGAP=zc;kDahWb@)Ds36=ZKf`75Do1Y+-R+&hQ7iApc8Zb|F?Bem%r zFir0L%eCn_)@w}fU$0H4!8Gjs+chwZK&1DVPErN0031r!-Z?ZACUqkfWcgS~sH=i( zr@oj_0idAwC*C=92@SWsXmTcTjeF-%gt!WnB6%_(LR{SonTdN6rpc255#p|aX)JN) z5lAL(4&abDJHow_EqjrIY}npN=tKoM#7zYh5SMu8&~NFZT6~bW#=UbWLfo9^b4?sG zP>K*Y7^WF}T#@yfug7hBE`hks1d@rn18@RyFDl3(?tTS1#H|Gs5SMu8&_77rLh(W3 z8u!kj2yu5jo0+(CV49J*Y1V5#;;La9+vA!LNG7iCnMC4RB4x;_L)<@ADu=kY00qP) z-Z|8AKM?nj_#knOd*@JuxVp`miF*>J8Hu~bdd)}NLYT%9cQAou;syf_*>OVUVG44H z8>JwJxGF#aafx>h4Ipt}KW%a*agBTDP=vU_C`HC&ToFt&61VNCoY#EBJp|KO;(kOR znYeQRClL2z1v$jkD##)3BtQXiiFXc7C2?cL2Z?LkJBK2~o%3X_iSr%frol8Lan;sq zKH|RqRRVGE5=bWQNx%uj{Z&B@aa$DR5cdF}fVjjvhZd5!mEwcMHSV255#pZQl$p3| zV49J*h1P36;>N->w#W4(kW5?=-~{6ODaawNm4Y1NzI-A_T;iQWt4Z7|FhtHIu5s@i ziV#lo+Ts2CO@fi2@&oUGD z3QRK|<8Fs(EOD0-NG5I}-~{5XP>@61847ZUI|5KZT;iQWeM#Iv@j>Dm_s*dRaSI>G zHF3UBITofFdt7VlHD8bWa6?N z67L*ZMB+Ay4-(h7cMe5}`})Dm#JvL3jKtk;z2+ls8BAk|JDNZ;abp38>^M_i$0^7m zZhr+i#0>xx5SMu8&}tG_AU;T3>lNe>ccp?H;?4vV5SMu8(0UR#ReX@R#=UbWLfp#xa!s7?7&jZH8HpQcz2+mX z0H(3TeSB{!ajyVQAnqRua)|q#f*j%=2NV#Oc<0bdByO$vAaRX*=TL;WSJr1H?sk}F zByO4Ynvb}tFpVW{2!Z4t*BWpFaeFJsA+EE69O67c0da|U4%Lykx9%}Hleoscb0|Vw zYm_46>A;6S%}m@Tm}Wd3SPRow;?5Dm_s*dRakGDtYvO#Nav)4I_P7G;HD8Z=>+S^No+6M;-0gr9hiokRAK#(hcLN#cXVHSV255#nyYD>HG+V49J*sn%;g;;LX8+vAD}Bop`Hor%OX zN6L^>hqxUol|$U`0R_Y*-Z@l5;vNtmB(8Dq9EuS4;T@TY+XT~$#I3bn^AUFvOk;_g zP9T}Mfq+AHoYR3>3UY|sM?ns8T>u5dCEhu-h{S!l&g4wu8u!kj2yp{Zij2p&0+?nb z?ycK%Uh@(608C?vyOuyQamxTF5OGt zc3ZBA^Bv=+!ZagsRn}`h;=a5!fw*@FBons@Z~}4L732{2f`T04?gJDMmw4yUdJ=cB z_#knOd*@JuxJ|cYCT=ZEGZJ@_^_q{k(J+neaoq_d6ITE@fw(>ja)@i8Acwdwew-sN z@y?-_NZd;>M9w6xaqk?85LbXwWDJ#W-JF@Y2Vk1__P8%^%z4e%<6eSkEO8GL zNG5JA-~{3xRggp6%?fgey9iJ~T;iQWrTc@pBg6-ZYur1BBE+q|A=kwDh&u_U8HpQh zz2+mX45qQf{p7$Uk1ciG@jc(2L%%z6 zvbl5UE&1I14n9-v9C{D%Msw%T?|y{4U2ex)+MPo?=rz1^=$|mI3GN&kG}{1mzu`W0 z=g<)BuRDsaCld+&af`ikXgu-96=d%mI*ib5fMN^8JBOA^rc(alu#DU}wBZ1A57mwd zQ_W|cci?{RokLp#lXZc~5Sm2q9NH0>Yz<5%)5P96^a+X}`CoTkSidcG%kjPLP`v3o zhxiZMg6Bscg_=E|vw!9Zd+t7x(7g)kkxMn3&{YbuscH$GrJ$a3Kr? zD#+e%^cO-s1lpN+Ghy<<)0?Aoa`UyRydx?P)oevJ(f zl}D>e{2o9k-x0ait$|71e-y<31}G%g68dv2w3*QJ3bGEpxq$9f(Ab>Ak%X>N(3l*w zoX}YcvJN*AnysKwxl}s{?W>@1IcUf+fO;s%-W7E^p(YBlk!=m3&wgkd$_nZVLcbM= z2chr=wsVo1GWx&%>#L$QQ?_Q5V{?=ud4Lwt*!Hz)rV-&h3e)h&5)sZV07Bt7>Ubs= zGV1s#ARPYqf7w1=9vx9^KvU*o@HpjSWRAWaZ0!>OMN&1$+0srQ!9wJ?ERhsf5A{~=z8WCwZOhb|0h|1<<^v#u)G28Yp zu|2vVO(+2yj7sMN@&P4?v<7(2`%TLG@SGl2)5TMOq9Wa_Q_fQ=cSFRnAUZNmdUL(@Q3UWkx zu!0$|(gytdwt9%P3rdmkaR0^XG}DMk zUxaC_NFM}{AksG!uV-Sdo?jND%2j1vw&Z11O6~?^|WPThfhGUI&yS(xtH}jYxk4 zC=h9JqDbS@o170lLonj$?|Ac{1+X*yP<4fuD9^$_Xm3p0!K zm{ikdqzpvbG*P7S=}pehDA$fif2tsxs}bqt3UWlcR6&kN4_A;Q($NZXMA}V3 zR-_{-(jtK<((q>ZSdlj1-)PoDq~p%ZEYgZp(}+mxmRpfVCi7nh5Q@|?Hkj6bY8kx-BCpM*-%%2M=5NR_jQd@X4nIE6tDLN!M7lvij!1u`AV;L%Q;-$ucDDRHfhf}O#{XE6 zHsD`|)os(IlOHxfEBHa(BVI+-+v_F6Zk9ad(#HS=B5j^1()jcy=W~^7N2GHVWXo$rI#EH6NP8>D5ovP;IU?P$%(jgq(%&n{ ziqtz1B7H(2iZp!4L99p{@b6LUA=0nT$}G~CQ%xfxy$z9?G+QN#|7JejGfpmH& z=QosV8-JHG)nf{>sm$U276sV?nH8st737F?fr1>7PE(L0(jf}6BCV!K+X+OGh7WXz z6=?(h6>L33I^&GYBJGuG8WHKgmnMjGJAed{7Q=lAIU@Z8sj`T4h4OAmHzK`Vq)K`!r(hpCy&1OY9pCbLWKon{CppICPHsD|U)^m+gZBHg4QN2KcjWfAE}<-(F~q;d?P6p?;+vMrZQX++u+DFcy~C5kjYy~+7~ z<=PSHOA4~N8j(JzAV;LvD991%xe9VbI#)rCNGB@DinNv@?JW>R8a|XHR;0myD^8xw z4-6VMnLmGVn(`vcq9amGBO+}E(^!#yvB-+SiKOk3Ce*JZ(*Gh=7Li`7yj#+ZR5k)i z5$RE}DUC=k1Qdw0JW-_a=}pe#lxs(%Jr!ijYeZVAAV;KsUuYZ35$PKWazy%=f*g_F zq97~Mbrk8v0#T&l16X23+JJxET#rb)X+dU@u1z(Ki1Z|w#)@=0fKZ8!NY7A^Bhn)P zWfAG;Ct2^7bR(4tmMHmf|BKj^Mx@&S1tM*oDAM@!Cg+=!Ye%FPD#(`Ci1Y*nIU=o5 zkR#H83UWl+MnR59zd6x1n-%G1iu7H9DAMp@GqECVz`v=khe+F_6d4cqpPrCr8WHJc zn8u3q9smgPX&(hSB5eUEi%9RDZ@pX6jZ|I+lp@lTV^bQDUJWP^ zX+@$)NQW!Pme+{1qk)^csOE z((oZdu_A52zaOuMNMAiRvqoPr#Y_EeA~(ozLkkycZrf1hhwlp+lum=r702K=k_dWf_S zN|Et!|LxIfrV)|;7N)Tx-3TB-r0*%n5$UslvWRq!a$!j~Qn?6Fib$(tQyP&@0ThU| zU7|?i)0>=&m1{?&pUknXVasbo`nrM~k^VwKj!17(kR#Fy737HY1O?e!MJG_CH3Ctj z;lrU~McROWD_;+ht~e@9d6C2Yk*TH;k?sl8P^6I+rwRa}NNwAjdD4*zat`-h0VRmE zMz1(MI@@};hfj0ReFsofq>&Y;@2iyd=xSD+)&UAc+TM!P7Jekxj&yn_=lRODjlav8 zYKnqvDs#B+uOM3>v*J{yAV;KM9cdfD5$QGsIU;>ZK{k@kr%3M-h$0OigcU1Nf~o)P zG%#q`6x4f1WESbqQcWWwy$q(YB3%L?L8R9z$PwvsKv_guu3T8sjYvlTN)hQF4!7m9 zDb1MlzkmXfc1RRye0r1fCgs`@={g13T#ZOqDaaA&$qI5rIzvH@NQW!P5ot#SS&`OK zq~9H8+JzzwANmz5Qi7=>4GbD4(vc`d#>0KfRMUt^|9WVGNM8n!AkxnjQL5@i8 zQ;;Lls}106X~^wWESb7RMUt^_l0R}B<%$t zL8Ma^k%ce9UZGn`5NINBp zG(Nq_`BmlG5$Pievbh?OUaufWq~BMNBhvW_azr{sL5@iKE69p;J4IS15Jeh3xGq+t z1XD#C7&J_zQ>SMZX;rFeM5JF%OAzTh01`yHOF@oEKLC_Pq~|LamUJVPI{>AKbW&_e zBhrO{0+Du36lr{VlXD;C+7W3B1=;c%k$!QYZ74^ie^8Jk(oG6-M7mBvj!0K2$cofk z0Fj<75Jeh3q%T&a1XD#C7&J_zcTdeM((_VHBO*N*rm>N91b_sQ&QXvf((!<@i1e)* z>)n!Wr1CAG6p`KvnPbfJQ5d5uV?E65S)Pz5<6ZLc6l zr2jp@wv8jw?FzCYt)@s{5QriTA4nK0Qi7=>4GbD4(p~#!7U}O&O(P<`7pAcyT?-&V zq>n1d5$VlKwGC?(WIChcB-DZ0Uk6Q`Q!Ec)zBQ@7ERa z{rY0Q-&n%;o15_cmQudo)|Bt-n(_V4=6t`q1>b+#lJDzV@%_FszCTdT_lMf>eM4Km z|ExXVe^JTzUv}dA#x8t+qKfaos^Bt>ycl*7AM(I==sP1K&T`%=Zts^1W_5 z-#^*G_s={Z@1Ixmea8g8|8qXyzpC}OO!*e~0ePP;x_rvFH8++$HhIe0vd1<*#eHkG z)Xl|5EYRvfDmNy@rsWC1A`rE5%D4W?3%(t8;WZnXLEeXEo;yVznkk=~-@#|vLo)#z zzje1y!h;@9##`(&DuZWZ?x5H3p_xy@xF&pP=5hnn-Nb$Rp_$lU*Nd*pi0uB*OyZX) zNIf)@&|*Nb1u_rKluV`kyC$Noo?NtR*DmkuPBmMm?3}p}&+P(t)r-t$-FAF_xzXh2u#EHU+TA|Za;jltHN8tLo?4q&92Vb zM;@9amD~?u&&s6S`VK)}ePkpk)fO2hfp(j#7|%XeOa?3bGD266&d-Q8|)# z5GqxWItE<;=IR;#~?zFDaZ=y3PQIC#DP*HKQvQQ{D*zh)UZ^W-k)k3 z5l$^kV}-L2KqwqX9aqFcMjdAWN*E|@KvU*oa8u=Cq-B<^JqS>Apfuz{mGbqmwp=#l za+uV81t=IO#XmHYM)B!)Fy~(=*J?qTscuq`&2_>>fG$*!BhnKTpic+L3gJ{!|RMUt^|2W!;^hQ)RC!=Qpgd(+V{}S8d zBL&%DR9Xw@RX_)bV zd0sg-xd$jl-=F4Z(5(!F6CM$(8#y8=iM=_Ca?BJBexi%6f|$9lJ<8Z(Akz4UW>Tc_=}pen%C#fXVg=dq8j*f7)HakO($^K_ zi1Zf1(N`5s}^r(^!$N z0gxclhZN+9^jbh!L^?pZu%sKQ%mkDo(l7S3<+3S_NZTW2Akz4UW>Tc_=}pdmP_7-3 zZc>oV)rfSRf*g^qQjjCklNIEMbcTW)kq%do73tR$X-9!5(nfx0rWWa;12T)WZ>niT zr2p%mAkq&2B#5*r+=q}O($A49i%2h3-Yw}yD)+NQksEI!XZO=%QyP(;0Voh@{6jM- z()jcy=b_5ABhvN?vgI`*{ck_p8jeV}E65S)3kq^XdY^(EkzTE!s@(iTJXIqJkWeP6d=jq<`sSy<5_aR7zN) zWRczzo6?B%RX~AA;~$zyk;bPtIbWe%J0d+pLAJa`q(>;o5$PBOIU=oAkR#G!1vw)9 zq_=H0E7Fk^>FWYfq>cR0OfAx;C`HD3(m(ByW*QOc&tV#hG_neGGk{Q}ma*AvkEazh zA*bIP3Ed4SL8Ot%{ISY~og6n)>c;_!iZn8rUl5zpOy>6i6o@qbp_!bPk56xM{-~F& zvNM_gs)B5J&1C)~3bMV~tTTNq}$o@{RN^(8~LG`TBIlT zOjBND#c5QkX+)&0U>YmZuX|X=9FcZHnoz%vNOvJs7Lnedyj#+ZRDK00MWn~XrZgg5 z0Voh@{6jM-()jcy=Sj-7Bho$!vgI`*ZJ{7Xq+fKm4dsaR4+?Tbx=BHfNY^RIiqyLV z^;#tmMcT*@&D0`&x;nE+uS+$Jh;%VbLy<-%^JfAGm1x`E9PZCnkaM`711LeHHG19X zpWUo?d-ya5-3}~K^5K4?N@|BHbTY-2bC%nrTF& z&%-oUr1t|z5b0J0IU;=&P!^FMq+D3ijY!V~lp@lK*py~WIucMI()fpFQf~3-P0l;J z*eW|BeNREQyhfzYD##J(JqmI}dWC`m9l zOo}uU`>QZB8^XPa&D?zJ0ktOt!)ikUL(>s737F?qk&%`4gZNkzN#=(unkKK!Hf(ADT&##-}$qpQv0rBAu!rTV5m5K?-t2TA?6Eq&r*N z25?0Bo`M{aKC2)r(#;gM+3DYNCWDUC>X0SZJK|Ikc|G(Nq_`Dx|a5$W9uvbh?Ou2GO9 z(j^LVM0%)#9FdMxkR#Hr3bG>IPLUP}M3FY~Lo>BV$F|BW($=Y_5s`k_GC`!T0Z0(( zKNaMN^esSHM0&b%VM#Yqxeic@NJqq`G$Ne?C=hAd0sYQB2^UNYWHPtjC(upt) zBWYyCsV{&~q?R$W;&hOLoXPxQfD%NyLEk>|N;B)-PL7)?^?v}0iZrs~v^F-SnaqC_ zP$1Iyhh}mzKR&(5`E2FdnarP~AX{EDnLl1ZqjKwSX2q$Of*g@HRgfdn&zst|aYXv2 zf~-iZDbkGsQKXIh&`d4Tf0kwz>6TQ}h)8dNX{<;N2GTv$Pwup1=&bCpCVl%5JlR^56#pf zU0;}4q!*-`MnpObreP$Fh;$TyP>GI6k5!N(()|Es5$PWbtanSg5vj)#C5!Zq*py~W z`XZn}r11~Uq}<}uo18CIt{st{q99vdBhr})azr{pL5@f}DaaA&F5k9|Bhn8PWJOv_ zk-jVtMcT*@&D0_-L@6@PlfLbxnMOqVAWUOLdL4iSkv^^74 zQbhXguJ3Z?vMG&7yCY>F()fpFQl#i1f(Vlt!fI0}4bM|Ikc|G(Nq_d8~5nh_t(cYCFnVBHc`pUL+7j+Q<*h)FOTSznMjPRjO%3q$j{MR-^|4 z2$krF^mGL|B0UUH7Lk7TAM4$cZluzhB}zWr|13785$Rii0+Gf)G?OBYPj7O*LAiEB zdcJ~ed5uVqQ;;Ll{T1Yhbbx{!k(MjS5$V_ew#{Zmx}73@M<9x{ksq3=McNjn$auK_ zcxRevM5Ir_G*+ZP0gxclR}|!k^kG0*M0$X7VM#YqITcWfNL$9HG$I`aC=hA6L&2k;XqXlOl~zZ*o3JxpqW4OhLB1Mx-4Sm9lOo}u40nK*aiF%yrSIPbZ&Hp?%c^E`T@1-|Cpe2-QAziqWeo>$ug zuY2+O0=|0to;MD!qwrdUm%DYwj%#822eGeh>U)Jn#U)Kjn>MTPi`$eI7ZmtKOjj6w zp$FvRc~xDSG;dl|+M={ci)JmFH*3RUYC}`iIS#fczCM`=!o0d0i(W<9S9~kFTBJO+xvn z)z0t^@s6xLy7oBlgxV98Me0}NURK-Q>s-4>?NDzo?<8*a&f<42At5T}>t8#-8(2FCxfOX$!B9J| z(oF-Arf#mi`}?9iTdMO6pqpQPf9EM)URcz?P=mf{GA}Tng=SAv^S!y(6iAWTBk?-4 zFUI}?kJ4{p(6(MHe6RG{=j@9;2F6l@w)Cuhl~;lN{f$H_y&=Y)D}XJHeOr8bUiTRL znb=?HvGYvuAa$>+vES3%1K+251MxoElxKlK`+H(f@lWvHH1>>OdwPfCUF`2O_W$xe z#U4ga`donTS9t8=AA7Ii{Z_MQy3ak)jqS!TDD4>cEo$%nDnR?$Hsv?j!*ry9e4|$>Q@WR8SQiC(mKe4R(4xio%a%U$PL}nCLzw=V_??<-g8Yl|POX$6-y)0YBVlvX8u>hsu_){0 zL-t93O83B;`*<-Gdl-Ln5BblMo_&k;_D!u3-toH#?@h4J8Q z64M^iXXDc7eT)nkRqU2mf!A7_C4MhN?ro5JIo`{WrZvh@gxFAsZ)J(8EYKF#MsN`eRr(9HkiG4a0z?De|vE zxw_{~Ey`!qV7s?K%9e)zX87H-9{f}5BOyhbjI?d)fJ40RERE^+ND}X2Aae-Z6=}TA(9Z zt1DW+9r*8plwG0U0>ejE{<}i0tudT0@Opr?kpD{f$P)jCVZ2j~(~FS*iQZ(4bjbf8 z{N>-~@A=-r8Tqe4+9>}#70Jr~(caZwE!uvTcYTikx#0h@ zdhvf3#%fm}&yfGi&=>FYZpvSM?;(s*wXc{?1 zODakMlshBff0p5Ygz5j;`Tv38|0J+ghS4thU+bL(PZ#1Z|F+fee$y_UX||Jg|SNBZw%iXY6vj`Zc5jA!k; zIVlRP;w}83q=H(X)<+s*{fB-6cbPxJb0wzd=!?Jk3eTrxkBrp?lkdzx(sKMOqxLW* zODsO5>|qV;XP8pTPha&fKS%wNirL>VrRF60MVmtBNk>?xq!?PKlR~DNb#2LrKJfmZNv?D4h zh_IegBAI5DvT!6Mvl5aAODW&zoiEF$FmdG zlV>JWF(%DS4#Jr*M1&qof$G{dsQ$I&^@k*FGKg);`M zYYX6PhZ3Y<4ePtHm0Muk&h{=dS^SZZd9t|j-U0|s9E+a znR%mP+3Q5N)VR#SvA2~PWfvhIo+C3~mYAhw8QFep3HF!p8+!?B9mXRnpZ$tC$ea~> z3hTsN>6P~N-`x1mIVkokM#plzBuZMp(#uK>#=RP6=|u-t3!)A3LA6W#XFX(-_%Ac< zp=AJN_~5)5XM0+q6s^$)?a&70crg~1<2Pdy+qos|eC#PVEyy{e7D(3?IdGnn=l>G_ zY1IUX#QzGUYmQ%G{BHxVjAIqZk28EN@td<}68~EwReiTM@KuCTGcJlw!}!lg8pi)N zn2iYIe+PUo!dZ3&YQ*^80p*qWUyjnyODX&@2A2VEXKKbzrf(0l41Xo4c?-N+VfKSF zjqS0g62I%;{vFY7ozV^j@WE9JwoP-BzYpImYjgN-V)oFg0_O?Ln`g{iRsV3ISPgGpD2~Wy@HTE?v=3*eTZj?z0%v63%zo_QsOUjpl{|)KlR;MYHFCD zjAlH}QUMa{7-cvXU>PJz`uNop`*@UQ+>+=^Ya$Z=nVRKiRAC&J5e8!$%PC_Ij#^}0 zj5ZQ0$VGj()=15G$!0DicEOiol&}zG?t~I|MILSN z=ixUu#(%a=eK#Hd`=Dh9pbaGcSL3rM<`jD(hZ4Mp@xMFx>IY>en;nskO6`gLz0ms1PvSq>Eye!&$NxPs=OppJFFdmUhVj1- ze(Ct%8|AJ>zC)pfD!dQGDsBrzJc<9E@U0vuy@c_oRT`r(*6X8Tvb|6XV%-`mFj|U@5XS%B*o(^^u(um(=AjOK zk&3Gq4U7Lg4`T1*=#f!`M@WhP98obUwE`ZVM=>5U-ZIiNqH;7)h!$#ZhSy zJP|7ntQgHW65;WeD<#x?87%3W@t?lxyGi_K{NZ>;;y?3ggSf%i*Bak>1ZJGAKuKCc zFB1Pdpe9YB4~`~FfD@7U-xevO@t=K_af;>SD5C_w%Z(?V(X<01F`}XIpQ}wg{_X_YZs`o=}`yjV* zsG*Jj%-usCeb7d{kgI;1#Q%NGG4oJp;7D&I)=^rZRj1>V@qY#`zbe7|IPk>rzr_EM zKqUSj1XWLlE#v<%#FG8MVwra!c+l~G1WL^KPhMvjEe*n4eM|i2_+o#sTZ;Yvm-s&y zoa^|1G=53^AB|Q&5KJ@v&j!n3{GablfV!rEJFZwV{?A4UCH{}czGHw-^^Qf&dV43} z)fv|fb-~_afVK7J;58S@Jp|G8M64WDddHjoUBCA4h!vO4@KB94tYOG)AzGmyE&^oy zKg-1b10wN%2HJ56TI_7J+>t25WU$i&t8OLO!}vebI|p@fexbD zes?NTO$2Wz;_v?w{~1#l*LVie4W%o3Yf5UwioXeZ+dMmfd|<}beL*ZRCHu@ZkB@EOMco?yBfis^?J z<9{`B?`L8iYp@4wCH@bFp1Y&pbwWR_f<;U4)CDODQG+%pmt0XIfvB0Xg}a1P@;oj$@o7B|6ieQ4U7MeqrcvTK30co2N?gicz1XoL7(RZ@&9S`tc%c^E6q`2 z3%FW>vi=>b?5{)rzw(|0`X;z%{J$4(?_Z2TV%RytzeF(&>WjMDB4-A_k~y%2XMp}$Nu zQHAk;G?;6Hei6q1S%|Z9puKq}{vVi&|22qw_1#*dY%NT*?2IUBKzFQdouR(n20o`uK^)s{Z{wKs9j{kpS;{UI`pL!e6XPcv+4)uPE*Aw1@h)azB zZ=pUs>aK^Hf9Gw3g5E%{9gSY3+5h`#3AS{X9D>?`fC-gk+>fHg7N=MM4vm5 zV|}+8^q|*}sKRH;wI=xs=x1+xPnqk7IR1aq?B&}pP~x@bI&zGc{4oB12_%gFKgRcO zQCl7Vf5N2LeE%o76{DTc@&AM1?oRmjOzs|7d(3O)*MIz9>9_GZ_*47^UTdH6f1c0r zzr_E~&`NIv@qZVtuaWrQ&u@w=ZYKC|pm#p+mHLeTUwNM)vYd|VSo(TjLf0MqSw7?c zbLg4BH6w}<-X8uLxUwaT|Gxvn68~HHzrsy8<$k$;58h2h>+!}2-oYGEk3ejnhyGXq zhU4N7uW35fj0TpP_%j7+j>ey57*UUa-j*Z&9AM(ljMVsZ9%|4Hv2^+Wr}%R_+I<1y zd~ay84UQ{}KW8MwpX+el+j-FWG0^lSh$oCcPn-C2t%*Mm<5<8^&0-waZ}u*SzV9;e zXE}PljX#S~c8NcW(fijoApSh!{ToM`RzBw+js~Z1;3&2UN2Wqw;?D=(Cx|w~ygvRC zC}6nX!5i)~{`B>4^L~y$8GpWy5fkIjI6sU(Wxm9ppCL|e_RdG|FZ9Ry5`R9y@!~S5 zf14S9cJSv_C+H2$U_~rTCz{g0xncvR)1MI5( z^+2Mf%m0fBB$2EP$uIdXnB8xGb6>chd4wKz&yQA|1qlD-Is@7lm>1ufo}ZzOpdk|C z^s@WL89!Qb6(ju4d5CZ=z7UvP!yq}*1M}g=byKFL4foK_-HOZ(L1;%Su11yM8`s2S zhJ&+ka;5dyL}I@ z&)^j)rSQNxUzz3MTqjq}c)gdDFkIQ=Y8vaq+=y_^o3qPY+1h=hA6|#U>(x1DEUn7< zT+S&8D_rMiKAbU@Rdl(^OlsP~Ak0ZxL+8OYJN|K9n18aqNgur4f$Lu~qs=)1VsZx% zXQXLMe_Y#Zg>rD#x21M%z6F7s1u??A)Eyq1^ z`j_=Et{-syl-9g9glxO|=PD|#_{WyuH3iM_68*CbTvu>6UL(&rDc(6qjqsDJ6WmM9 z@{=1?#+6hl4{;*g6K=cvCPL-#y`9Ow9BD%R^Q@kC&9J4p(!tqPS=pxkxjM-eT&_v9 zGW)qI#qplIab4HypR;RBCHiNs)HU_bxqPmWwn1rVBYAMfrlUbP*A=IK+H;1EYamR; zD;0{7g8Jut7uWvS799-M1@HXM^%K!Q*Zx|;hWg+A`U18vJ#p-!mr?&+;X(Azb!=Ik;C(`( ze`+vXa~A!JDqFx}_l^4Jy4L{IunHqv&JdSkPkU1r&dKvS7T&AEwI1G$%M~ilxL2Z` zDlrc01P`1au1e59z|1oGs&IK3aH5`71pp6P}me~Vk9E56frlY6XQ*6Gs!Tdlm&f+-780x@msimJPD1)En)l;WJf5-+Z(?Tx<@?61JAP&rtu#vkX> zhZ`&EzZ?7y!dVCP&+7w3|6DhBw=(#W9z4{WfU;2k69fGZ!dXeE|3UCE48I1$-s*oC z81{lziP!&Nv_*TQIudo`8q_qj7gy%nBNq?nTRzU#4#5297@Wh-!r4U$KB>)F*uM{I ze2CHiRP2k_|8Si39t|(y_-6ptt7ZoJKLYLSV|J_xGh5@(#`94M(f?%Fg!(_&=>JGq z%|q_)b|TIV#^aB7$Q^`so`}~{Se}Yc1`g^Ew*FDIS}t zujs~9ZP818=!E+3Zggq&-w8Q&$E-yua_$Qo(SI*kiT-;4=anR)e`+zh^}*^1^*;gU zPcxuT-i5dyG$Q)%i2`@|VSAuz5>c0kFX5()m%6TeEu^23kN9!Dcv*BS#eK6*9ilDqwsO;nz{U3>$ zW6}S4NIe%hw#2L$g!|dfPM*r7hCY|%&$KrDtTATX68cI6^GZ(F}pZY&7CI?sl*J8eY zV^04UfcJGsc@JjPsQ;&-mG40}lVKC;|Ch+|Iv`azXWw1_@1g}C!yjiVUV!!=$2t5` zoI{_AIe_nBM*U`-@1Kl$z1zKCV{ZZW6nlR}$$x-6C!%iGV}9;p)Zlr{T)rKne@3(> z;CL*QJ_<@1366WA{7qpy%IJS6`kv^YS1gT!mZ<;nXwyQpB=5DP{;Tmf0CjLT>VGoy zKNL}d`acA!D1$;J{*Qw)Mq%G<M=2lihg?%wkwFJdG3tq3pw-uOOWcKk{rT*W5*ISMLU&5*f)4q#RY{P8pc;xyb<|KxB&jk8^0_h(EPv`IE z|0B#@-GrH6jCcGAnBNio-+)i*pYym@|IPeR|6gDhcP%(-=2QQ7nt9(3V$|t*`}j|x zw2c3v|NmkZ>;tdLUjlWM`u8E%>HasE|D^us`2U9fr}@h;i&Wr$g<4em)c;e^|Eos- z&my1^PKIK|eko zmNmf}=+E%F`-3p=cP$>k^(b2PVXx93>{CBI{ZK#a0{yh|S9qQMP0-JtXwN>r=%*tX zif)hO+UEw$R4(;)qCM`$Y}Zt*Ah3OI$hFTlw9jYg-|SyM#vJls=!@-hGuXY>+m1ML zKjt^xZIq8W0F;I8^BV5ue8iiDGT-I>9xE4YpJqP$SEWDOFZFBuPf_~r{sPRn{nI<# z|Gjspehy# zCn9rX{4KLrwBk38va@VFBjm>MF-yoJgtRWtM0x%x7W7Gv%#$_cd1RK2XPDCROwHK} z&Yl#Tydcuv9@C7E+$oA9iLvokCK?*-v}PguMBIfPoI5?O1WkMVoh2K+61 z*$@EniY;G6?DX&Zh@ z>yc^JjV+dCBX6PpId8?;CF-9F3H8r2N3zdzdd^s~M=v*@2Q51hs2oiCiL;H-?q2GKw7<>DP?JeSU< zPqshrbKw=49pRb!C&!iW%sW>2B&ZHX|DBK@zwt`ERzPJAD_om2mP;G-LA zqV?Yw<>Z`6Pn=8eT(WmW|2*@_ze#lC75QAHkre>8c`?fGqlLI}E{ytT#Nk{St?H+L zKC6oHfb&G5{(1d>J9y?(#i)2bmxuc2T{pbuKa5AF2#Ighe^=C;vz}}Tt$)tT@t&7< z_~adXoZH}Ykofee`slw3dGIR#5hxw?KLq9Fv#2U?z9{l$STET0m|AV1U9v^+Q;dIQ# zEd;~a^nVb}5hmsIKhNm@D0nEsnZt=_l_fZ{pJ()c7V@q^ZQ7uQGm%R+{dYl0cvPkS zsS_Tpc+E49Up~HZ>t^=w2*=o23Z|)lnG-VxDQ}GbT~Sxje}AOrst&JE=Jn45q5r=4 zR)xKT@e1|N=eu=H@oFLJe+t-|0?!_1f5spp42Ei&g5k0FJ`HT|i%+Zn>6j1VRa1Le zCn?`rV}^qIpMw@1fiwT{$Y&ASz7h;qfC1`%2F|Q{!;bnt4s~4!eg=U3EF1Mt%T8zu zt^X5ow%7-4^L?ZLQ<3K!oV$C_D)oN?@|=*xJxcd5d@!yrgg*P>?D_$t|En-#Qie0s zeW0LQ9Q_}Sx*m)xgR*Qt#QYxP|AT@4U%{`X@c3(7Cwd63P%Fo41+GfD9gHr5o#_8{ zaGhQMPhei94@!OmX28~B=Igg;-}B+~UFiQq%#F=M?mxwuFZF*_z4hM%UU*d86PoXj z_Na#1`{eXrjo)OQ@qyRW^J##i!O0#O^+Ww1gt~I(b}w)^(&(R8NLl?KW%NG}DjkFT z+n~Q6h}JqNOY_4n)c-hFUAZ?G4cX@fpic{a+R6|0mGW!>PW^x4eGY6gW>;RuwNmxf{|1!mf0(_Sm18)RnbR*{&@xS z2DJPJFx}kGuK&4c$!f4^^)o-v&%v01>jtbEb3LM;lTnjts0sCRQpWag3d@5~TI%Oo zv<~%iJ~(*@v*>Lw&v`m>J_>#Cc(5=G^Gf?*KJU(Y>gR7L|KHGmXW|*d1N)`g@ zNc^OJ?!est&%wxa%sCFn{9(5E`7TPf4s%s(pC6h2H6O9y9`vu@nD$v0w9h@L;U}tn z{)W7=Y+?I+f%ZAne**Jw1>RV{jnDRZ!#l`79oM}dh3o!$_!s%ZyrX@#&+$I{S4%&O zf6iFQ%#3_vns85;o<~rbFW{Vk{0gmQ-hlgf?!?(A&H(V6Y%;gNvoM(-kU1)O4uM$E z6UTxwcSS4Camb7j&v1A)%oh=^rqY`8`7(awNHwV{dpaVTYuiM&gW#X{#+GiUAfxKb2Dx%C)b;KuORP0<*1JJ=b1V;p8NBjemr`g4|!=LMXj;v5^#ccsp}7KXD@tS8S>Ia9#; zhodLn9mZ$Ovi_Ao__SwU=V0s46+@27_|#a|U#`F4h=Ci&+5M5K8&Y%B-3{Z3-Z-9w z_2-ohL$D{TKYMMo{sR$-_Q5ej>R;tm!(t#_gYjZH=jh^;@*j(GVj#-Kd*b-q z^!@OyH%32AOln>K(TJ;+us9O+KN!*Rz+C+gK~y^t$6eNcBDh!xPovNRH97uS|Fd%S zpM(6zqW)uX4-q$8e?H-)JxbOJM-M*fgkvh<-`0OH>c1!IGbmF3;VAhq{2h!K*AM*j zeoT(-xUv3YQ2!%P|Cy-&{-*wi!R{!7pB>b{2FLZwQU4`a1DoO0e+9-ytp7DQI-iS? z&@3DQP6_n?I3o6mI5t;e6v+C&j^ocA7+cl^YgGlP>;0zwmtsB0N6fqtBdVX^W$V8u zO2a3^@D5KU#69xo33{#@xdHp~&+R9Jz*}{I{X(tp6#f|G5}P zaJ$>7|1VMh6*z;r2}gNu#r{56t?GdCw(&b-)#f|gN5J~84fOv<=zj%{>i@+W-6VgW z-^c$cj!m;*yV<1YRRyOa*Gag3V4*4h!Dxx|QR9$5mVW_$m!joZ{$HVPS7GJvER&w) z@8z@nJ^XRFR{3SDP&M}l;0}aJp9ZhN|7Y<3Ec}0jaZeYp{C!+29r}L`y-)l9!uUVf z5B-P72}aQHJ006!rWlED5|M36{x$_ODeSi-2Xa(lJmY*5;|pIB;~9(dZ8Cpo=gJvf zn3^$?aWmh>vo;=q!ebhvK4$>AN)aA|Xpyw>d{QDU-x+mzr5~^FU?dhKDJ}OiFV5`n zYAZ%>u4eE#JG{C#Tm6|It$7WY#Bo{O;I+E>=cwhVDy*^n<@n0>%(lY7l;L%Y!k;k7 z$Ye(uFiO~@rQ~=f$7=G=qZyA9;ZZsvF?MtHf$h!G^2pAa0ggx57IM{Na#|w7Kj+tE zOvBW?x>WejKS!(imn+D4{N&M{SESX4|1!i#UYo{qB;mhhFa}7g0k3G|_@V>ik?_y> z&M^o1&p(I67NZ6^cH&x*j4$L0^(-^&yvkJgmn-+U5=1UIO2PF5X+<|!$UnzM{NE<> z@7r&V)STTG{yQKl=TFbJ=jep@gAPN>4Z-n{{P%`3`()yu&wCL5Ig?e5G@bE2 z9IyKDFVDdvlN?{QLRvnNKzc`7`|;Szt8^K;_>7gd_~gt!`OC&XpMOwCHW_kzJ>gcG5n7J|HlRVkHr;DQ_>RyjhU$H^S{ZoY9nc~F-El6EZySny z$o~k#{~(OB4nX^L##nkEj46laOOBCl$p1<3vlufSM}hyTDEVpddUD?MGodt|Z*|0- zVsmg^m+*fHT7}Oi$j|>dm}{Jhxr>`|-QNkA4S4|Vem%ypr-J{B&2?AlMF{!73s>0i znzSJpcS`@i8~i_*o*3vB%#;ZKzXAX68UA0#eZs>3YkAY}gDBJ9j7tX^{)gxI=LkAK z|3_fFIWgdWJoulBvzvWQ|L0xuv-0MDvElzP+#SjOe0|YX#dlp>TK=b-G378_7$$$WBXV6 zb*T9uzq!x${}i*S`L@SQ`FY+U<^KxoF@D?%6}*Y73-fL5{U!J>aCL|u6LIz=<^P{I z*k}3wlAs@Zwy}Hja`Y%0&m!zETMmwD!~>7;?imJ;fZWIHcj!T8foy8|CRerCYnCj| zu?W3#9K}~yn$UvtL2?Ze=W94y6x~=O-bW|Ti;F)3hcjWUh3lVlRpIS-=JAJq| zuzUSEZszz~&LxuT&ubf6MGKE#9FIx;`9FJhuRrh1V*R=H%(2$)_2+z8OB?~XS{zq@ zmX71gaJDa61iAKtqfgF3@~kSlag4%oGVj-7{oNYyI(R;BQR>g9K1MelEqKPm(KhQZ zzpYJQGkzieQhzssvi`g(cu#Y#-!rEE9LEem6lMLpV;tyiw*H)tbVu0obX|_VSpSNI z`gcS9s}OmMcRNCN$MK*D$6elaRDe=;ce39bzj^(3CmeZMfBx3nVTju8aTFVZ`g1LG zvIg;ea!~*II9i^B`6ieDeQ^wLhnT|p<9gZM>R*o1@#%l$pXWz13uiOo6L~n2@8ebD zuVOcx&w(0-F$V7%Vf_!ZNzJ$JSj{U!8Ro*nXw+Y3!K@MM%lVw+P5qD9t^N;~`mYY^ z|AXD?{{ZU066+>m{g+wS=G&vl`%3T6nC1B)j_o(?R{tSE{dqtt&U zjwo*ZF2gZm1?s;VGkK?Be0Z~yztn#luE&=8zwF?w|F^mNf4E!y=lbM-B-Xgd|7cw0 z9o?3i@*j#BuU^Ri42-#=+gVt5`AJaz4JiM8Q5aW3v-}_7`3g(0g7WolzqOYAVjE&%8tXAkElB9w{S+^> zwVU<9Z=Ai6Pg=+k(B{TiNSyC>ul%-glE)PO(IT{#&y6vtt~Z>cYwJ~ zVgY%hABhOGVh#D?yJ&@_p$%E!KK@ChVLOB`?v*$ocDDCOAC+9JfAJSGyLS?9$IlP?WAU$Yi63Tj{Hp}igFkQm_mAknzI&Dm4VT}ocmEI0NRnNMX|r3cG=EBg<9OTP-^ANLBg!l?M6I;7>~ z9VWSrV@Tc+K~5N1s2Z+^@;m!9OD+E`L)wF7rmk3C&ew76o_Wc658IdXG1MV@eoK5( zXZ+t1T$Nxu3J0tOpQX(nl@|Xv#!HWXyndg3SmGahk^FC6#t9w&ct5R;e|+vWpWiK4 z_Uri90y(nfS<5gEh0N~We(arL{9}8trg3Kq`5#006ooSEWyIlsXRX9I~md}^$X ze|$80=5_(z7QO=9#$3#uwS`U>y#$Rh;f4pq!G z8;&t}7R>(6ISPq4JhscxPkc$AA%D33(z2?^Iv};&F|9Fdvqe%45%BiTJ-S*gtqZP7=SJfiV8@DtPuX ziGRG)g4fE+b6^+|_gmXUg; z2evk!EM5Uc@;`L2yleq(@@~EcZ@lM#>fu%Syt+lkf9#<}CN1Lt*N+(ecqc_yyod3x zGjfue%N#f7_sJe>5siOb_oCY5DHdV;;}i0!Bc@I&Ulq>Lshld9SIe4cW5!!Nxjm5kB>c&Zqq_F0uvsayP7X{OgA6qQdys+u(6;WjGJ!7;i9UB*OSN&|Fc~5B21K z{w@WA>pi?`%!!m>_JY^z@Z5hS_Jr}T7p&-o@sBJ>{Obp=d!TgPQRn~1-h05=b(M#{ zXU~i@qmf1$^)8L-sP`_*lGQB9mSxGkO1352GO{E~u3*gA;1V###DKBErWj*GTqyw? zObtDb69~Zs0wJLVNFm`S@8%{i@Bd%l*>ld+bH?!AyT9Mfn%QT!Rlc^qz1FwBwbm@8 zWI8Ea1;%x+=W|z2UP8?3g+0>GIgU!WGHYFoZ=&+L5hiPE=s*4Z{R+ptOn1C+4xjm}Z}fz7zNT?_B9Q9P|xb}@wY&{PBXMJcU2fgOvOXiFfSLV{M$olAb zwYv`Kqh%^X{HDv|&lEW4xr2poF=X~C}{(`VJQ^I7dKvStJGl6g}Pu&}MJ`$(?(~oWdIpq3p7Nv|MwK=#e zi#y5;M+#j%s6Z~x&oFd_ZxeaVA^r-|s{dR$Sxq+wiCzb0<@#?8n)oo$zn`p?u^s*$tFMg2FuNBAb;f3*Z$-Eqg7=N=C;xYmch zr2m!@OZ|5m7Ol{KJ4m&ToHJ5P!t3r7Vze@2!Tp-mf6K{1{dWe>W-!7y3rN&|yLfgA zlykqH-&X&fN?y?psHFeSAfDsVx&Awc`;z`U3u~#tmG%pT4Zvp&Ea|_Ez}i!A)sijH z>{X1`<@)bn(tiiY!F?whcrzC|T*wIP#-je)hm~{{Pckf+w*U4KYYVp4QIzc}KkC1; zurDuUG+q6t59T?Z$d){##5*vl4Xbzjfra9DaoUn}d|A|MX{BNnJXb zJnG29et`3LR&wVqP;wyPu`fcN)PGl!;v^s$$&;-}oco*XEb70@k;$#_eJ8Ru zk+ICP$>D5rcLk{{k<=sPx0@W#ub}^qk$*}5?Sca8zoS_452dOc3U zam8%)-?do5)nMD8Z7nT`<6P~4BIm*7vyzXg`tMS3s^!f{jzR1W;I0xkP{Xbv7vVe9 zBmJ%iyCu}J>y!Swn3)y(lKy*;arIlE#$;;g5j=+<1>W=UaNWeyHmDo=?<(?rjI>)> zab+j-R6d0CJ|3DzO+f3{_@*A=v;Fr5 zs8eeH-3*r24p%F`hF{yxq5oXb#ZYSh-OrsXDuw?0VsW(LUGTnp{r4o#A7=#PM$WnZ zbG7+*aX&N6&g9*%;D6}9=b_6JCH z;m%YbSe^8r`w5IdlInR<(tm4Ht#&U2N2eN)Z1vMhvtjla!R^uOA}P`tpB}x45|ODSM#9SS>(L|7}b9#0lE6` z6lmw#bQ^$P{kJ}~|5iXJS36VxEl>LI+@$~f<}{PsneFZ%C?#Cr*!BlX`mlK#6Nnm?NK z-!n=7-9SB2|2@R)FXj05r2k%o)(;>JFEfwoS>}C({`)pFB-MZS!Q%m}P^JD;L+qoJ zFR*6S4vxvmQ|e0A6Z&Dh{(HDb`h5#&uVEdeFHc8(5-pg#f z(0^Y~`tR#_{d@_Zo^t*7e&Fn=|Nagit)HO(?nU1eSgmL;Fux4mFXPYU%q;caSD|V@ zu7A;s{+pTYWLE(7-;a=w(0|{CyE~Wzupk@FT(&`3uKxxwH{f6Ju2KK}I}-Kx@KF6X zGy7NOj{PV4?>zkbPfH`4%YkW9_8c?Dvh202?6e4MUk`Ol`fmYipx*>Nde?uirv6?< zye(+qBWU1Dq04HdcrtSktiSt_uIp0$y%_0o9ndS0%;OwUe-ER-_aag28BuKo%K>~( z1_S>lWbhJX&i2bC=yvPxb;#y4uyD@!5oGZ-NR{>Xx?bw<@owtxU8H#ynYo+%KMseY z{=Nxsx(Co*Z%XxdAM-Zf3%{?XMy-cWL-D%16$l?q_4n<-bs64MBf$Or)Drg|I|ls@ zAG;bokT6t1En+ zI`DpK_E!sIv+tz(yD<9z>v&zo3{dNDD|d5PSAKjJ^>=<2_4kvh{?;K4JJIIzv!52$ zXDz@t0tkA7@88?``;Upge*?9jgTL?Tz~6UJe}4dfU!VB<6QuAb_!d5!ya2wR`1{$! z-+xW~y@y)$MQHmYJh(M=9;X9mEndnqvl>}vg^>DlF8q7*(rFRVcW=Z{AJeKwxR;+eEccw+1hKW4PqQ)x?1gG22N15+8pwD;Rhf*)zeS=eT;ZHCT0%W z!=yoVLA#x!uyVms@SuP7_?uQsnYO8zXDbD?oK+VbyVi;xV{~EdcMPZcAO}t7%mHP< zwwiW@>Vor49oyFKuFWsts2+bM-Zq?eaXBF-jw`;BAom=3>I?rJhZsSbmMZ`4YrBhR zwIN31T$@L$r>p9^3VrqXYbkJc@j$+N`hh#*(-;1`0+72lmh->2@w(1A4GZYw52AGw{GUlK+I6)-%gP)^geKDFbFH6ddJZSNLjEtK7A>Lv@8|>nFQrwt zA@P4F_5XZY_~YsGcJ^BB8JoqlqsG%N4*p*Z|FxS{&;L`fZft<&yQw$xXi2(j;R4!X z)rO1dfyn=>=u^Bh{aH}q{cU~Z z{}uG&t^YayKimiYf1SSWiPf0 zBLBZePfGrOypR0MGe7_G-i1A-Qfc|M8AmLyjFYGI&eZuc-{-mIspA~E z`o40o$CLNGEX(^Sq2!Mk^+4~Q9uw>Ddimejk3ef(kIb_wD%d$ z%tLP}bBkZ$G#BGm8%!-^_Q>p~>c`|cO3dXaKMTFy3{kF>36D(E+Pf5HVG&BX95nV` z-)sLY&*#+!d(3)Z*@umutX^t4o<6lNU?1Cf5l3iqNOH^~g}qN>Mjzf^q4rr`LioV> zw7OuaVrBnIjOC3z+<-~^Eki6U)!1Smer# z7joZw^-EwPtn$}&cBPx1jncW6CqfeXMQ;nS~5swhQzJ4GGU=RiF5 zoU(R0;vet`u@)6^(xXv{Rr)MZ?i$2ZtEwKMfvZ-BxC+m!>g$L5r#UiXp89gy7tZyc z5bF^Ty2g0=cL|pq3V$*6U(`%#6#7p)gz~8!$W`U!j8xEDOBpnNwITeG^+FGcvv1r? zt|5itJ@2X|dbsK9>AX_?;4HHrsg%_4)|TelxSUg3lYX^V#hSC)eAJ@We7(|s_xjIL zl^^{`^|scpEcBm#abbPZUt2t#H|pMLde*rQqB_AVX*Zm+K6=##*8@?;UHvZnXZ6O` z_fs!gX*x2&q1;KG(0}$nM(|FF8_rcp{|R5dLY=U<52N0>LhZ`uv1edk^q)SHBS@?M z(-P`_X0AmX`p>J-f9~j~wPP5u!oSx!w(1`7uqK!5Kl2y>G~o;H9)+%X?YcZZt-gOX zlpMrzEG5TYc-Bg#%01;g^mA7l_1w{dB*op!FxpJ|{8(3p62ml2KrkBnR%pIhIbQpv zJB5$s*BJ+1R~yuS?r0GD&%HABUef<6*MFmcCFVkCBW%WRN1LVI{>?zEZ0Kzr`cGcE z2bz06sWG)_)~9>-c^c23m}%>&Ht2Vl>p$1cbJsJib=RQ<#)e=PUz z1E>DepE~rP{4Lji&Q-T&mg_%fK#v8>pjNK`CR2hj$Be~hrk;R$ zxK03@X_TwwUR~$xDVuWuE|Mcf;A+Gvw3jPVM{?$bM`TWh|eg*IJC(ZTW3Z6CL3pAdx z<^XYD^q=zzl!#U=bM9WL{#%=19?Sh4C^n4TM*yAD?>epvDQhac%k|%U@X-_6da7Ub zAmUAeqw2q<@T3`g>jLs!$?tslQQy5Xm_1|VN zSO2-z(FxE@Kk@!>d<-5oOZd(8pZoMi`)_RWJ9AxC<1U3-Yk^=ZSg8M20p(nLaP+bZ z{kN48e)sxs6;MoJY+@Kb=$paj6yRL|E!B1IsF~}(olr~P{QitWsQ*smeiE=XaTV>q zHN;+7Eqn1CS`JMXGbW+_(?fe~VFTO_{pUJe`kc;#!nyuih_s!?6ZPMAQqCs+Mxf|V z>i&2HZAUiLf2+xJ7Jf(T_*(%Lci{CB`fm?dRU5XEQ!6>2PhB{boEm|6D>-d}Dm#Jo zOvYF0;o1(KUIgaqKX*bsoAT9v`sbeuJys%Lq5oEKc5lTKh_MNa_y+LH_1_LW#C&=} zwcsHe2jJOOAnA`MRwJ|t{kIlqmZxJUqdn)K8MXsu9ius+|29(29!lB5JNFORLTuB7 z{&V$>W#p#*I~Q2jA`j<*?c1-)PdFKlT#)o19y-uT z{dbVEO8W0yMt;A!>cimCtP<_Tc2jki_S<5%jxt9ZMGIESkPj##<=yAaBcLjp&G;iZh9mGs{cVr5X{V#-=bO&CELbAWLm zv{L_B3uf|s9(+3h-7iP~omJF-dw?YL->Zn3>%SYJL$x9F-8|J?%yzkB_67y9oSAQ*$ek1_P0{_=NHGu>hI zP||Ay$GJ=cF%Fgn;#|2++T9zY%&@Xmdf6~6E1?+wVL?Z0;x_20XR5&G|O=zTLa zeHg3xdU4#%H!jVc77K9rx)@ee3)-WkGz_a-k0|B zc#?OI@%JP#O{1^tVkGQtayr(o{~iI4&y&+fiTxzMk5yYe@I}0j8motO=s&T3xr_e0 zG3h@&7n_lv5lH+BB=66Y{`(r#+?@apd-B9?=)Q>xm&Ci2xN&h|ANB#E< z6q$+awSxOU6!qUnf%%hYiH}fAAEO>FhaMk-YTsov_)Pp*L;u|irE8GKAGPbh@8CcC zBlO=xtka(BzuUk`{r6_DQ2)I^oS#-rzmFojw*Q=;P||<@j5OVcq})w?_($@(6<>1o z-_wk6hyME|e!S|x547t)SKj&w`tPSe{cZH$bI9U1!MFhoKFEv*_1}Z3{rBJcFWP_q zt^W$h^8eoY&vAtO&vrokS-rAU$NY_}^0Tq33yz^^X*0fOgHPf*&iQqEnd0VfL^|{6 zDLA5$|Cvud^6Isz9BYoU9fz=N?_&he>-^xd$`H_-n`0OTp>%Y^GE3vf0fDeNrqEM} zv0ig9UWqd63p_0&|MS}N#iIM5-OKlmSH;+xkUM^59zF@U&E2PBk?^Q7ut}2v6G|H&bixhFE@G$%8TzEw{T?8`9HBy>$skcV<|ziT>jk)qnS6ZkkwOg#4Fa_a>ULtz+C<|4DEmcvE?T<=(zbU^kfHPzCX%=Euf&dnijJQ4F8{7{;NBfmNim%s zwH%zA2WnsrgWNCQU2#*>zNKLi@s`{4XM>Mc9tUV0TgeXH(uXFldD@mNfV+tFEytOCryLq0={~9cEA^%IU8!G>+i}Js;O#as= z`R{o?Ml)0n`9BSQPN(<30;ta6*=nFt{#{|^Y)T6GKM~6G19o}Sise9?u_G-#1!wV# z?{M-w5qnU`|AnL&g>^&uUxSr!6glPczY^Z=;aEfYn<%M25IA4I`>>}d{}*sxja_Lg zaJmYR7Tw8MRUGR$fSqj`w%cXk7V^J4$^RZO*~S~!)#@qK0QF@_{+-=%J{FE#{`a=a z|2DXIxG4V@W2xDWm2MTOl#5G}{BP(fdt@Nwe-Dy&YLfr!N#iKN(M02oN&e5J?1k{g zJyBd`WHWDN&auZ zRklI8;FG7t&8Bgy|g z$p6zkdn>kI<^M_O{8R_|cgD?V>|L+JuJkBY#kZ2ar%*2c4I!`jL;e7o+Wsb{ZtV#bg^U^;<37dJllv(QU zXRiHU_A3A1XqW$Quy>>K|03}H3i*F4(t0y;`%g*!zu7MT?}Z2dmgN5jl=9F2E&u;p z%fHqK|DwNHI(t=3FkV=U%)!6h%Hvh#V9zqj&+S86v3y!h>OB9j6NL|d;9#%UoGJz5 zmEhNAl*4a7v~tispr>Q>JXftaLTx`rC@eQ@U-o<}hp>KW zq0t{b=pXBC>r-4gXxGr*p#Nmpuk01tNAyYMpp@G}urzsRPI1=0Q#oik&=wH<*PmSf zNcpe-aODvE*SA}^ZQE)U(aK>zuG%21^50#c<-hij=(|?RLCaG36UWX#`g_WMeR``Y zKltx{pIRRDY0dd>%erz1{*Ny5U+-CM6t1gW9si}5yWEUVDYe|hPN4eBR>yx=-VXk| zlc+wj_9e#iv>N`^6Epa)|E&CX7Qg(T)Jw0aL>Kw*tb11>(1%XHOugHjP2Y2?s+2yi zg8%lHCqM!DuYF-==V;yBPfPr_=c*TBBk6`fLHTc+uySam7q2JZJlf*=UpI3X^?w%a z+sdH@O4ZXQn+mLZiedXi~K){_SkgVX`ARPR2!B;|M~PVhLh8}WcAp< z)oE2E-vyTz(ZAVP#{W$`vkzH~mxuh<>*+%JhQa^S;ej48=T^=CwTb_yfwikoPAF_Z z{!WA%t}Rz7Y)4A3DDr;|b><*m7>AMk-L$;7R7%YI3{87Bva$^d$p3SIyDpup4&=?+HWl5{}u56+A7M|+v^g>`OjgLUeBv(^oU&7?PS{h)${-LwB+a0p1%y=o;P!~ z4;sF$PyBz7{!`TdEAS)f3;%B|^8b0fq4rb%<^SdI|C97BDu=tM{g1Ts|I4I#1AU!W zRn7nBSY_=B`eW9A*9|yGujmJO1$~~q8$VvTcwqj$BLAPq1LTRs|C>3#ME!Sdv`XP; zQ0rFs|6}|$z5wO#X5}&U{}uEO|C|4nsF(LSO7Su-qd$>9i#wl3Po?8~-{w6P+sj?k zo6awJe%Qv0+kFN6c&NduJ4AZ&G zN@x7Xk|M|7w&iH>arRJNg5zqIEdGuYIkT!f|5{Rvqa`tvchida4{uLRMyZupj=!^E z^4#5{!M@D&BL1$O-bg;B_pTuC4kG3F=d0bDySp0){tLl>Jn5a~QcB;5N&{Qyjh3lFV8>6Uwia4zRRxRzOp^F5RTyJ z8UM}TyOM88@PAK&wjBS{iuiAZ3mb`bGPF3gEdRiNE#LQrz_yEaN=N*+k>lYa{#$sz z7fWJ!4IGQ-=Rm$ICnJ41{zp6DzZ+ZGG0M#GKZ=Dpr;hT!7rI;pjV=WL!`PvZU^gwj z5Bx7C$ICdB|3hWD7qIMJ$~W@PD-M32cmS=)j+C_^TeqBU!)ekK_H>8UMF}|LZ&8|1NCL<@^u)|G0?%3)mB1 zEGz&2Z~Svgd5-J+2@k3Yc}lHJkw<9J>hg)NiZ-dROXa_QYpMxhpD|{X9(FaaJAcQz z&&}R_K&_VcO8x71D!zE#rz$-SyM|-qVh~t9w`Q?qTve^3t^DI<;nJQbD^s)&XhhGol$M-dS)heeC z`dgmgK}*&)pwE-IR8FsNl=cOo_1mP4FsR_STHf{^{BD^*kcmDWDzEOI=*jIEWxfU`lb^cZgwpsMjvP{2pa!@;yGvaH3tx~YP zGKkt@_%EI|EsxPPP=kJrQ|@n96OBb zzn`7BzLF>M{|wIaIVy$V|1Pi?N(*pX;{OHUa$e&9`IVAGr4s)yhyS~2CkFq|q0QN| zUr3(ua=bA*^Z#60eAV;+hQ$B%v<%0SZeQa6F6zJhKZRm?*Z(>HUkm?V%gFzwU?BhZ zf!WPDkiDFT<1uhCR+=k|{67~imh|9=f;{{asxh5uvt|Iw__c4v_ne+*S}(O?6j zwyS%g(!->Cl;hi^{SN0p;QSuqPviVJX+O!e=SMhOUH^&e3pfrI%i>YjknuA06h=>( zK67^0_hnDMO4N5z?z=gEgYzGAyoc*Q;dmd{FLAt|>p$c80N3B-{O25xas4>w4|9H* z;~b9bfeWK+n~LER96#pzqT)Nxw-xWjMLdi@i9E#BdvO|9jK7;R2H=#}Yq=(#d9j&E z#HEb3%XnskZ8$NQ>n6cx=PnbAqa?8|dGg@aAf%`0p z-wr-sjq_^aD!cGqnKe$^b`H~+RzApA%PI1iSXG8B5e9mIKYe+zmPWNTwHe2NK}~~) zG!M0j-XXMog0kL1nJ;jBj_WUQej|rC{61%4yN~D30^3J8z}I)_`D(7$^A6f18c3&i z@J<<*Zqn>V&er#Da@@c*aoYB9-N%r)4Qk>?06DPBYWp`d_CAW+_NTz`d5*sz=?k2f zar_YnGOkIg?L*aF_YSVW08MReU0pw5DvR9qF<|~Q$M1pny&Onsq9L?Pbb~h1s>Abb zWf^#hSQ8NCtV@Tm?M2>yn>;?n`HO)|!s)GCi(7YRo9pGFrlzj0fB*XW+OGK*{t(!n z2Uhv|X0CId7kMh&g$9nC$JY|)x?+6fpu1pwg@v^VF^wj@g_kJzTO9DM@VO#B4|Q|S z`6<4>FWz^}n!;1*{RsX0*HkM1IpW{V0gg%5k>gZ1iuYx*42P(6b)8By{%3fmtO=Kg zGMHbNcu`YV)4#s1bNVMK_bJMMhV!$WU(b0z>EFQh9b8|`^}lmmMH&Ca@vmGz!TBl9 zPjg<+c?0K-oTbfO9Id2%Gv}qn^gf%jwcCJ0R@9?aO_ua)$ zWfb#kzb?CPf7U~JuLiy4I4Rn?D#3YCusXQ@Bf~>hmqi4IRA!w zb?A8D_&2WqC)c*YTR6~fNiU)^QrnpJNZWJ{zk&DiZYI|QxE{=*zD3^BcZjxJx>rAe z3$8E)TslIZeuOyU`xTCRc=k2U>X6rQe4YE3I9o^mg5$f~KgIca&a@|OXB9rjS$+FO z&em~`)aLvl=Z|sxh-c)5D}ABuZ#e&d7Qoq1Jhh+mCqA!h7-*w(_=qvZX8H6PDNXs$ zn}OT!z#nkFpYsEp#arCo%^_YNp#r?%twc=mk`<>6Tl+JVw3wbkzDEUio@&eG~~j^9-% zqUl$$Uw?GKpr%pdy36}<9^MBGZ{z$94&@h|61>~E{t(ydW^m8>m+|b)&-x&x`ZHK?W z@jM5(r#86qxsU5_ar`OQ-{dSkDu;}(V6P$RjC+alD0x1@Ij7kM?$H|z$H$Pn&($;P zhu3hvgmbSU69P-0*q&p$Xwg*a!zb?0%#JkSFd|NN$n|%(t zX?@`oq>zO*`Q6QN4zjt0V>fllMHSC!y8w(gc9Hg!rA^z^y6(la)E!ot;v7_eAU$|(=(q+q6tX#Ev%?az)pR}=9q6qO{TRV7A zR@<+(eqeJ`{eb4W5hI2UYZy3U;OJ2!hc}KIIcnO>)>*UX%=IhQF-SPn<)Eytu93n` z-_Xzm0E35(96PaPYL_Mxay@8JbMwfNqehLk_1iydY_x4Ybm*{QBSuV^%y({3v(`{G zUIXE`H#82QT|aQZz(Irfx({w@8Zu{v5P;5OFu>tEN@)Pk9H_QEKm=iih<(rd}(&rd^bWB;tKfr`?veo#Mt z8vEJ5sBawD)Neq)L5)oV>k-9)gNKb8Yr}EM)R}YU&YQnr(c&dbJC~Dk2fdnxtUl{M zpkIBz#{L5u1`ZrJsD5C5lRcKE0bntD%((H>RT%;T4eIOb2N0==)@hdEI95}r9 z@`HyC9A9|p;nR;DxoqL#W2bIDebe5!+q?1PC40}Gv48KL8OQgYboRMR7F@!LDc*T8d%s-m8}^UvY3w%h4jL6tlLavDf#M(LoBH6-)EfV;^@#8I5 z96NH|(UuzyUVCNBl9o-U9WRz!21h(j*9GmWQKz0hPovJLcFSK_1uh(Y-~&cPuaGMvv((KXR-^Cbt}1w`lFb6K3pR zdvNaD#Jhw~dl7STfc9Q3v-Tdp?$YCX4;($XY8G#zlzHXYQ((*7mV+0~hBED$c#-m% zJGblO$RxdaZDXN(4lOO?P@Ze|8RkHx{JPI3vSOp5Et_>*;+?yPn?X)a&VePQRYsw^Oit`YfqH zzajXcUyV8*P;`o)9x_rEcA&}pITd$HjaPg-Z2@+bzaZ$WVdKlETXpvsZZBTj8+c&bM|LH&h?ig zRU1Vn8$5l`WbcT_`7iwu`egLb=)>(!y|haTmnEBN9;4SYrKg@*+YI`)v@a>GKYc1; z$pbK@e)n$PYNyafaT~{5Iqa9yS5M=kKjw^`qtC(mVrw1YO8sl?65@It_jhq<+b9cd z)<^om$>yM4BK5?|B6PfDS*5mhsn@oNzU@}}aoeHQsU0Jg-PwDaT$nR2S*DTN@yc9q7AaSn+<7+srD@;ytRHP$_ zTPRHFCjRL>A5+-R?}h@Rj-RFR=M`q~yFD3P))a*2^7M8NGno0K~J(IXF+knU%)Zi`{aaNzyOnSvh?kLoSpDXJb|qEYa0=ook}3 z#40Dw#dID><=|>Cu4C)$NFjHnTUXq44uo=0ImFBd=Md;~?@Uc+ekk?ARw>A_j{KJ& z@vNHkV(tu2Q(0rY_eow4E0ynjR`GTYi?z#HFwVzuKZnjd=`Jr8ObF3Wic)dbgy?* zBE9=))q$<+p}OCktBLlF|500{z5J8%Qd1t*S5ba0`SRbHD8YYI=JUUL&!iE$DeLlI zdIkT7K)q`D@BWU`KZ6FYd?zp6DR2}|Du>|zc&OGf)D)(5e9*(4{CD5FnMM9P`=O56 z8`biE0Sy!DzdOm*6k52R59E^*O&0f1X8Gg!%)h9kVdHwBV+wQed0znqW|OPC%vBCj zORXW@-I30!xxZmU#`QU{?yN9OQos{Bl1%YbI7sp1!yRQo8PDd8nTMD--|sup-3?%wRdAunB&gm1g0rEzhur>r0ul z+XxSLCjOsU#{V^i>iO^5jz<~Bx&r{0r?ql z^8(;Lk+SzO$X^}*w~@9Z|F=<0wfw(;+1G8*eh-85IsY$&|93)@>iPc&ZMC~8Gw1)E z)W!Gfeo!$yn(F@#a0mD~t;8!><3#?ykNV$N{yXzO=l`0-|JI77OQ)TMT}A%yN&I*H zTi0=}mj7=|{67G;IrE_-~86QW#s<3g*^7S3M2-Z)8PT z>tD6>f10^NcfyIF|Jzyr_Bd`k)zSZ(g*jOZvu;ZC|8ZeacATA{s-yo{j0g|0!`9n@ z|NE?!^AI~-eF6C2&h=xJkmvmu3QbwS|Ah|lugdj*XQN$;=1&{ zbNW)AJ;y13Q_A0RUP;LNN~X8<<-JGVpNc2ZR*!daZCR1l_HVS>^OQmuc?5p(o6{lk z&eP{`=VzZ+7i{(CkVbidLG%Tj!(8eGxnie(5#Kk_bBi48vD@RwVUF^R6+MgSk6VW6 zqLe&$QwEKygSr&Uyv)IAOksjNlF zb1_yPv-qltll=`>Yj9^5bF~j4MP1?16)EJ6bdKF?f}*i=x>S$Wd+;ncP#=xRo> zqLSFezA>?~g50rxF2yZRj>KxH)%N+z(UN|&NexD9X z5ZKohDsdKHS5b1ECRad+Rh>MWUYz`M#U^|Fu703QNxNA6p&YhquBEbTno8e(oL$}2 zvR%{2Raaf*(|0~GR$Xf0*}oPed+)Xr#mt_#wZe5t#lv+QU8Peyg!1mr0#d1gr&`CX z?@Fx{Q3~w;`@HW#sg!<^r*u@;g+2*=6SAqqh8FZ`#EDqG$--ICQWWXZlT@6Jjtr-Tfag7NNW4Y3Xma2%W>{-jTxrH4~h@)2;`d_P< zHAcx--ldDHT}TH@S5l*NZu=0FS?g6;-eUDMZE?!2G9ETKYn!Wz7+X0OhJaXT#Zmf6 ziC7gkuB;_uo$Dhd-+E=e4x5!VMVz$#n5*&o9y;rPZBW)LwPQ0!XvtE(QOjKKBSQIm zEr%foC0PjBkRM8W=zsBu5c)qX?Rm`Nt13>~&9wHoUWscOyW?@JL*l;au9vG-PaB2n z2fLS$CC7SdL$G#*om2Zy=zn9?lVj-r;iMbLU9SIKEk!*xobt5rHF2-?EcAbG`zZB< zO6)Qq=>a{cf6Yq|a(&2?Q`BSS1|xXSf^Gtihz15{84yHfPXgqdg4ySoxD zjJzAcy`vRl!EGqd`_tnZ!F6B5Sm+jOBfGeCbT|8ROMmTiyO zVYQO}A5TnI!I?nM!!_qd@#juTHCQ9X z+i$3~(K=|(UaMV{9^c1TNWB3!EfldVK^-K&LKj;blz;P& zytwF7Fi&OJv)at>tP&8qPAy|wKp51O!t7|48b=PPK|`Cy8+E%HRxRoG+dbht3$eOQ zIHT=ht0l(8V&AyX0o9E-2yq@<|0vc|kCuYmlqO1%D=@iBoIG}4BI{SK|E>4#x)l~% zYitveZv7kzmQq1|qm)Gbbe}crxOk{5v^QFRe_Q?Un#37$p6mZH6X%rQ?)LkO$fb*5f>c{vX9{N&k;5zU&8t?hH2$h$m9U zF#fdI8r1*Nrmvw~|F=TfxzHf=e+%bn*c7KxLVtd9{XYeM%_5e2sj2^`Q1Te!_Dfux z#jnyd35do3<22s8g0_~Gv7}S~PviM?sBd|p|K)B2&#N2rE634wwcTUSJ;yuh|5l!r z>;IX+-9ovGk%dY8&S%tj5E?J^|2VFid224Y{&&^!k=XY8F}mPBNUrlV0o(p;=rMx( z5yV~!UUPZg0=5g16qZ9*`8xFfT+%PYb}apelfS!xWvpeh99RcZcIba&ssCNgb2Z}( zv8~WeAmMvJlsUJ zW=q8HuOlVO{19TAw>rXDeGQ@i)j#eG5&GY9+|N+m=l+L&fz`9afy6afL;sHk6W5+o zoAl?sZ$kgO*Fs1AZ(UVS38$@${@lC&f|@~1rFJsBQvL5}liz>$cWmTJ{XdzzsmSY8 zxU2r31cXYvtGl_E<4ocVr*67t8Iw17>$ApGTgQ>w{VCP|W01N!-dShW1mnq3Te13o z3U8DlM=$DAz6p&!{46K;40)eQ*;C0Q*Z(WPM*Tk%cniqy3QCyGvtdZ`Y!3DRd{T_0 zc9iu0Jl-rv=GFg;Ngw)uF;Gh3>0no`|6Q9`Dn$E#WlGTp(2G&0GwM|6FxKG8Wd*c> zJY5E)^NTTcXi{TuO7|y1(+HjQ|8$_84$RYw?{lp_8*E!C?L;sv>3>Uis!%I5(vhog zA@u*c^vyg2890YE%T9oD3k#=mR{!t9{i;8|C&DM&|Dpd~eLwX7PNaG>an=7z&?TGT z;t*D)T@Eix`hPhPtN-Qet|Utfu+=wlZ~I~^+->0bZ=?S&gy-e${|mSa{l5mP?|{?l z|8wDTuK)KHHXvQ6z&l5*)&J)LVd($$JaZql?S+fMY$lVa)c^a5brFB+|MNL6L~?hd zP4_c$G=_E0tlxbLV;OOA#laTFu$EBT6;NR|PJrtF<4OOY+(G~Ef{urw*mY3u9AMZC zcj_4h>CY4O|LKM6yV3u9d9w-qzYFQPl+m#(aKAf5s*~W`e*S(N{jW|DZ+j5#iBiLF zwExxruGsC`(C$yGrORGsGZ=^d_pO@UU03aexUZ`o6ea!d_s-ssu_p1xQDwh&(VkGt zsWU7;^6DG)bxRz>-)PRc{&yAZ79?gihx)&T(q|`KCk8W!8~WefF{e=P+!tjMF`D3$ zd(+f{!7$(okCJHr&*h2w-(H(*EKZ^ZHxu7Bl4HH0|HtsAuOZt1x&A*98B+f*q_mUC zbqDgX19+C8ktQKcn}L2a&qq+pPb1E7Mh_PvL7P%rqnT$*lK$Ta{MP7|z`X$qxQFU+ zG{RW4+9q;z?~xj`%@p3K-A2-yP!HQ4>|0n)oy%A|JM{m0wD9u6B}~0Pz)Fbf|NV?-et`39;L9$?6xILlfKOKf z^G&R-*v8mw=>K!!K(7CfAU*2;z2x|Q#)FR{GkN=eIr`}u(yc&~J_f(1L!UD!Zv{G3 z{lAaD$2j^LO6~tj`u`r_zbongTj2ZyNY7W1DfRy&;CCC7lbZ{l1OBUk`?XA#?avtO zstp5K}QU8AdX}^%&MV?Fg|I^_1%Jlzp)YnI-V?W1tK>hy}ya#@U z9NbjY|DUC1y$))=K7A#=0)$iV{u1*4X(sEx4$stElK%e?IH~`iW)%1dpnhv= z|36;%4t3yD>|^;A{2VUDBQ^B@x2Pu{1E>A?KG^<$Eql`RJ#^Lo>(L83nA;{P>HnoX zn@25NjILPAn|{=1-|90o5m}o94DQ;iZkmTych9CFseh&ZHhOV3h1nX1#A=m%s;T5wCy?;8TpT~JOrIqymGPp99XBQ>?e;UxP zL+(!{#ZvUnM(WGP4>q_n>FbNA~t6{lBAK|8GO{^)(Cywn0f-jz>$D z^#5f@z~zMpfhF|+oy55v{*LBQPv6CQpB?r8?bN=9slnHwLpRa_xw}mN-%Q=Oj3qb@ zw(EcW9YX)V7LY^#Uyda8HRSsL_t7s?k=xJVKeLD5AE0|||NlwS|KDJZ(r2i%1F5Hr zS)p_>Q#YPOFRA~(13rFrA4i)1oV{6>vpmJK(ENQJ^#2{u`fd0{?54IHjx>OW-r|Aq9_pN|3Yy~&T9_EMJX z|9|04uK(Y~^?!hEx&D9Dq=YPUhlr7x?f)m?-uubBkVzz z&H^s#|GimB|NjaqeY2?l{|o<`(Eqcu0eIYO$i7MK{3DijQ2+mi9cw?1%=``d^Iwqb z(b=9%{r^R3=AWe&#qz?8>>4~4N6KH_hw4h!>e)P_YSP!$8 z%O93~zivVkyeG-eBft`Q^%eg7`}G5~M##^m?5725=W|S?>ncA#0miS<8+%(}SGGD+ ze%55l&))&p>#|d+$@f9U8hpYIW?zREv$HAL`B_PRR%Le;hGl-g3fW}%u_|lKMzSCF z?5rhwoHu=i-vp5;Muy@puH#+ldFkF~`EyImbLd*Sv9to@f8l3f{F-$5YkJRloOqkR z$={nx*PzAEn2uuP*V-W>#~7IkABHF~a*Lew6fkWqhfj>xIn<>G@y2+@ax|(xSB{H? zg+nV`_!^`r>3Kk;kA!dqZrbWP2J>+gF)#>B9Kkb~CJ$bjI;axw<4GPPpv&*_bMBv^ zM~ZusY4Z&$kG4)n&GfGb2=kFW$KJ%p(tP76pVnnZwz>xM(GSP@3i&?2dg$mepeL3& zIL>c5T8v{9J-o~UQ}<0VrPia)!7)4k92fR4#y8DFe+S3E!lJEBz;`hNNQ<;_%}+mo z!N8%_x2bdXJeQ*(1wn0prM#RCo(5%u8}c*vd+~Wmg7SPi77;n+{Fjz_oe@}d^A*li{NWWt6VUxWdzS7r+oBQ%K4-_`H%51#}6DomH+yN z$Zc~fmw$aljOCxt^(h$05%Mn#jw^Hy`p9dOa(1CI;@Qy&pDMGS4N93KsR2*Op?occ zu6g@T$?!61 zOcnBPsk!`X%Xfry7|<9e%FtpnHoei-)t&qsUkjaMAf~FJ9np^z%D?t5$Nr>}JMa0# zy5w$sF^+8R(kVtgy80JLVRMQRf3XwdT>fJmJ(qv!l*@l`*%~X)B8Hv@or5{4Il@26 zx~Rm5*OX};eYft11~gY|YRJFZ!W1F@T4cNC?@l{PkC1sSG>(wVS7l3mqa2E-V_YsG z>z(5?!eLs+&3w|G{5zU$E^^;}ew>Xuj=%mqcl5rQv~t+8$D~*z$yNE+=VdI1I~fg2 zW#|LbIfPV%{7;}=ru50Qlyc&Z%!b__&W=%l>fERQCo07j%CDN1dVFwWljag1z@73 zV_JIBFI^AAKG2U|oHoW>{-+baa|roYrzw-lf)Fc{N?ypnTFh}?M@f}NeNgm5QZ5G* zFPDEU?VW?OG9CX@I@NGW=n$?)5?2`t`FB@%wUHJ9J%{v*3U32bC}EDl>i5+-w89&A z&Qdm8iEG<_Jo!2T%=bf|eYKb|6_!Ee!{5zuBIXHr?$3z2t{xKZ( zs8{gUpXbA|3N^#E7XGxQFH5nM|H9pfwi3+Y*A^t7}#PXtco|0L4v;pt}jnp=^t zP26n~HeGK*r<$pWRx|jcD^m;EKm%RNmm+`98i}HUqbk4AjO~SHuA~fCy z6e0hciIdC!X-WRiA=X|>?;Q5iH(1Y~Gvszc=aV>&67vvnhWww2#q2Jpg6|>!ONl!PX_}kl|AfTp*-8Fqcg&o- z-N^YW_|`yg)1A9lk;`HJ`eVmc{(5pV^{vKD`IdGP=6Tf<-3#o--jh#`}f71uZ7ym|67o>-B>Pi`MJQT2zY4qFd)W8sJ4nq($oG3d{zl3?3EbX+eePB;_#-TrFLxvVYP5QI zd;*fb8cA6NkEa9w0OGDr^1qn67xJ&i(rRQ$`CkuBYoVlbEtUTk{^ln6N~~%BQT{h0 z|BKNQ%KvVpVh9o%`u{{EV>QptrCfK~4f)>+1WT}ljijtSygw(&|60oJUj8q^Znc3C zid|rO4|e1G3U?Ic|3)Y=AKS|7k-}NnsSX3zadLe#SGQqZRR7-%e0PFzBQktbJKXuj zZYaD8&M5z%OY;8#(klPoB-e+M{C|~E57T}hD87rebv>ni8JonC!sm~oLW!R!%FiV| z$WO*%SsM!Tvt5NL*#hi-_pt!i$D!)eg)!N}O!=9XK85_ugPyHf z$j?|f)G<8UPM`a+R30t-U(n+NSi80}f*^hFZ>P_9q0g_V-`1~pVMAVsd`X`N;qHBf zzebPzfs5963ac}00Kg)BUSuxkvxPmt{0K{#{|OrSVI;)*H6}YZYsj``zXbXz+2vT= z{<&~g_U*zM*)iVVkkz4E)yq-XgyiyX&r$B%r`KW`@*kG0N@dj3x`=*h*g2JdZ5JVd+O3QcwlOiX zM;WtyLar+1uVpN(qS{5A7o^vf@~@w-YYV9_oS~G{+uc>graJi_LK{ko4kgW4+Uf3) zEGKOL)be%I3)fJR|1m%?mNM-NRt`gHe}(+JXLCP#5yR-=mE_-C^o(pKPvw6U@0}@> z_gN~H5SCe~E>)sd%4KcK+O!PbD^tpWR56x%ubN<8j6KZdo3v44V|J|e^pJloWm+SZ zFr}+{`5y$G2Y_?Pzm^BBxXyghR-siUbVJDhaLRUunSJT%%BdKHf_ki zc8Q6!eVRG6Cw7$orO;HXR^>31*17WEN*d|Mq+;htO_% zGK#g%KswZbuFsl z^cO?^X9IyA&P$Q71+;7j^R_zqDarqQARLxj@LFpoB$;&ni~4^$oDTWl3>>SI{BP)y zCgm?`=^5qnzZ2-z(4SsJ`V~d_Uy1x~rUl)KoEGqi2>CyieqD9&=kmXWKJHFnyEMuF zGJ17`$u*b%(~!<+|18H+wUypvwer7{KElR!`QMx5|2%T2qvx<6svM?gzcK}2EgGHxIP7L zuj5>j|5LFC={2>qlu0jFL$OdO|K~%|<@Eg5Q_hvpeheHQ4hNL~UG%JG5>NTR1YECx zKXc)JH9`3|<~V3kF8}-KEw)0N*ChErM49K)cP}8T%Kv4QxuKfuf$nMYP_JKse9oqK z{X~-gd$5=cp@+H>33_)Y`M&^MPs1~)n($Wad+Prui}L?|QKie+GSTCeQC9|3AexwwKaBNY7XKzo*ag zKb2hkD$YaZ=Rl7Zq`kFW{#&@0>*@!6>RkCfLc4NAwThQ`9GIhe+r&Jw{;``w1%^W`B+TzXw0ZA$S%2 ztSJ9_Fh2w3pMlc@v+CvlLMYh+H%s!fuP8sKVS$^>yB2IcAwO4v$thr>{2Zu~{sV}) z6KIv6`=E~Ub2B`73M=|B?3_m^`8?|2rEp;hcBPfr^WNV_`S}U(|AhK`I%^Ei&8B8A z!P^gY(4WfB`>>FH6poyV&2bs_!|L?s_krxa*s7$@+f)78hc0-G`t>J?KJP8k=P@w+ zMHzj5LRr;>oIbyXK4)alV}GkDoRAI6q|Y}CJF_GBy`P8Q-_-1N*^3$z);T^>8^20pXzr1eP)fL9U1wqP$T>;qw=iggGghB?_5 z4BM5lv~h&R$R3WpVGrLpnrdwA`O$uKq~00)`3eNKLhO;*k~0Wd%ulfmAZ7t;e$MeX zck}YOrN?#N9}N8ML5g4C8RWIkm)m-@QrM>q8x5Hd!cW1zpY|MK3hRh|P6kut`0Iya z?&bJ9W8HN!#NSb2adouWzL`Nd9dCB7pfgZy)rr47b%T9>=k&WmNsJGRqwW5ozD{w2 zYnE$IMEjW5Mtf>G{#xnm7igo>#-{Zm=&LV`Rw?ncm#U>e`1972v%_3tR{Y2C#?_u3 z=Plvyh@q`ASB(|_@V~IdV6dG%hg6eEZL51S?TMLuPjdYAY*@sT9Di$VNBrlbiB|H> z2>d4%T8J^9V_iH z(_2T|mvQIFs`yVMcU$^;SWHPV<^!8^;tFWZO%=YaodXvZDx z`0qxm?dQ8I{wKkUE68az6xi0zfAK%wj{o_Te**ZQz#Jk&34d2O83km6`Fgn0iEXOj ze+mDE;6D$17IeUW8IUjG?=*DWZ20edOxtz_@m~x6XM_Lg;J-EDeeWsJJ-ISzSPzJNSPF zWxjzg*An1=7}&-CRp5UE?FhpMI^q9^;C~xEmUb?;-!U@m2p{jL~h(_GYcw2l+PbA@1i=dc6t`QR+tg2d+r)p9Upv2IHK6!hbpU z4Ny+_KMij8F!Fair5FC`neb1|PQ+LFYm870%;qu!femU2FOvVS$o~uE|1;V>6X5b| z@RiQ<|01=oJpW&({7=jB{PXWbd|y(QaH0GzfzjhnXyiN>^@C~iP`b*WbUw#dMSZ5d z$@Ctfpg~06I#Me}jzCQ?Nf7n$};nuAYAS zcc_WuO;2fkZdqD(^tMuaJDTAtV0!mfhri_+TOY8{<1xCSuWn@AdhlPWEAzn%TPgSt^agr*m-FAYQ4@K^ z%5_>HwR%?Ozipb}zw02`HgPm!C^U5CrO>gx0nw0JJ6g;2J|0I}{iSRPS^q2BfSjLV zEa&YHB(>J<;Qwf}a^>{W-qwlpL6<kmchGpIHMJ~#t9=l>M?0+qsI%8~!e6aN>`&N>gYut|Q;z9iWF2fq~1ayA~ZP-Kb|JLMp)jJ3|{~y7_MxV4rv^%5ze*peJ*?VH% zeg#WO@c&QX|6e8kzr;M@;Qxyi)2~F!j7sg&`HBC_+WBt_x-$RIroDMmk^k%A|Aq8! z)}{LIEcrbZ%fB`8|4e2_TK{i>|M%1SeHB*LJFDXV!|?wG%Do1Uq!Rz1!#;R5mfOFq zSpMnsRqn+i^r15TKTD6{{>1-3tC)Uf7X06l&B)66KOw_2E!&+{%3vkEf}sD^$!qc2 zGWwr^TvZBZV~Gp;-wGDD7wLZlsjiOxQ?eJJ+i&pNlm3&kpM&{=Y+xq+e~C4A+ zMCq;shpn2(!7qI09)@2)pXtA24q*iWkX{3oG#`*rz3PvLt|$9LCRM>Rk> zrBm@MxYvJs9A94X_r5%wiPj#)S8NgZI~KaR{3X|$i}>&3Yk2^BQ)m9K;~PE_og)7D z%XY!P8R%U7PyX9K3M*Wx5Le`}CEr?T;cs}C_pUj)gf@n=M#O(dDQUWz!f0L{FkDCu zYrsFOV5Lant3Bt^g#X!H@P8uVe^(LzH+I4Q3GjbC<0d)&*OszQS0AVBHy3`0mFKN| z+aKtH|Dq!PGvUH~_|z5uGiWsi{-^Ur>5Si%fB7!X^;Fq zzl!Ij*zr8#=I`<}r5y9r@g~o^^Eq-cZYh-V@XD`VoQ)A*z*1@ILf`vadK&j7J?S^a zKV#&v<2w^^N>G)qa>#trG5DU7^U%D^CyppLzK?!0BmWYF;$qv~FHKG*ZC+X* zBM5_I6dvLI7kC-R@2?(?J~2jasTBH-K^vCVD1+(zrulU-jZd|DiI>lO8fE1D_GqV= z)>6d5*h1*nA#(5wr?pM|<1lqdLFwxkkadO6xcX6=gSH?&d!=XOsdY}=qSTO8$Nu~} zOS|yuG=;4OaSBf7mOsDb;-!_!Z=LyTF$zitul?rdob3vqBX~h&eQo81wnbCuOJ`2{ zvc^|5JO@o-JbmEAEM=fBAs0}$Z<{Hu(_!1$N=D8Ha zM=3H7B`<1Vj4S7o>$tbpQ*D<~mNILwH6QlW&=cks_EzgpP`h0J`7}5i9F2UGj-Kde z8`9p0JW;bKPmYIrZJicsM_V1|4=UKgwidc_wRJeg{G;C^eYM9Zht~Y2A~fzT;i!Z; z1P{c*wY05Kz3D&Oc)jaC{r9cI{>9iy?5(SwDA#|^r!DC}*S&WA*6{2v*MEa3QOb*D zu7`5Y1{HbT9;}_Y{*xZo)FGr(U$}NbuK%L8N{5)CET{Cqb^dzjKUd+7Iqyn~HCP(@ z%+U#Bj^xf&!JUf|ie4*lm&zM=nOj)1d<4SH0E{_|dV1D~d% zJ;)jV9ra)IqJ&S~?Xuo=MAJB2mf5BT&k7ypKCsh18cpL$Me=5 zLtI5+2v3!KcV`{LedxbYJXine9q*g)brti$n7)n+C^$ot8qhAR1j#BKHjcp8j!Pa+e6rpeYw#U~m@`^gEUNDcI>6ecp z*jFs+zt9=sbG;&lTRs?aTf*Q#0n*6XF;Z^diSwiIA z7uFB`aeAsB<9Vb0(+l2O7W&Vb7W&G^IxuPk_YKi6-kCL84|4sdWI6Jo=g(l`3`at( zUok7h{fgbgLl~7;bCBAuEIu5GbcYV%l>&zNO_#+V=Nu?Gdgbfg674^0XkALH9&r3f z?dMF2iTvjJZ#*Rh=3(R3zAyL0qNDzE+)HVTRV;G-=L-4Ck*RxvZxVfUC1()Jv z&fwZL$Y+A*WZ-g)!7;TAYlEwx%%ZGG#0~xD$|TOM(DL9;8skW7xsFP>Ho*-3CMFBB zUMr3XO->Twdiqlmf6cuo_|#^u;$wSh24z~?M-tyq(tnH7y_Oe)^9!VsyJCd?(+}P8 zxFwtmj4w>%w?Fx+7p1@~9}~M=|4qg(D%XEA)BEmzhR_eTjkgesM6UnlCy%Px;OWla z4ZOkMqtJp)q(9aR{dMg7ui{Cr|E3emT-1MZA@tvDa-9KmQ^0u^QZk(st^(t_*Ymln zCodsp^}-(M=Nv~RT$!~l#y8Pv8Bm>q9d+=rtE#GH0x~GM9cu)A(5lIiI(# z?;)(slrR}9&{XQmOdy=gQ}^bckHo3}^rIU<4!QoDMJeM*Z4U0r;*K)IkwRAwDv*ow zGYnnf+eBV-h`)lg>c4r=UQIU#iCzb0<@#?8n)oo$zn`p?u^s*$tFMg2FuNBAb;f3*Z$-Eqg7=N=C;xYmchr2m!@OZ|5m7Ol{K zJ4m&ToHJ5P!t3r7Vze@2!Tp-mf6K{1{dWe>W-!7y3rN&|yLfgAlykqH-&X&fN?y?p zsHFeSAfDsVx&Awc`;z`U3u~#tmG%pT4Zvp&Ea|_Ez}i!A)sijH>{X1`<@)bn(tiiY z!F?whcrzC|T*wIP#-je)hm~{{Pckf+w*U4KYYVp4QIzc}KkC1;urDuUG+q6t59T?< zYQY|;{yR?keefdm-(hUgJ;|S6ZD+5A{&U`}-nt`zZ34##V0NyO`_gDncEu-aP3)wj zj15ll^qp1z$x-Ws9;oU+TMOzxt?{uxS1mF1q8LKD@jUm-6YU2n*tLEPC!RXNb0hL$ zi^8wb6b@JYQp2eKoG+*Tb2lepwAMMVtz7^41r|FoQ2)7aQn~)qT0foi!CUoTEAM;P zf7_{r?w;a0RQ1&QT>mYmq*)0%_1`*jS`I%#|II-gC{1qcCH6(gllt#UQk(=NBYCnFiF1FGokjh3IWoBwzVAfVCNh?JHaVP4?yewp zC6aoC{C1P$`4#lvG4e0zzg5e?1gn$&b3cI* zNK!pdO8ReYs@3j=;OJBXlC7Q`MO<4Ju0=P$UH?rf>c1&aT%VuiaB~_lo6yVdHM17l ztN(l+nlFCKDe0~)O;E|R{`c-Nr2eyB&4X%Zk@p5*RR5g>eZ2)@p-}==4 zTLGP1?M(f*Jn6r4lm7FY(@eg@fNc;Z*>>3lO+x>zA*Uu%^#tE`WHt2P9h9_)8Zn-) zk*$RTNXZPYbNzRFC;fLicsM`uR`lOnkd3?XX1a)4a4Mb|b@<0zg`f9w>c}?63+Exp zXMm&azy0VK_1~MRRqrXZ0N=H}=)WHl?d{%F#F&m{eK1NB7x_Ykwc zl;hiz{(BKxKY%p6%si@RnfDd?@7v6fRR7%vj|Z?qmHJN&v5!)|z?xM%I3_1gsViAe z=!fn4@8KTl_bsHohINp>Or3a)G0{(x>ig)C=lK|_|GxMCu=gf#dRFDZ_j6AsnaMKA zWZ#p?I@$M~goG>*mH-L+A|a3vf+2(iR1|Rl5h{pSRFncDh@fQ=l`6Pv-LTfyrDCzUMwjo)r{{}KQ;FoyUsQ-S0MEw&yRR7J+e$Cvm z-=hD{!@vL3G_tu8n5JaUGGi>uUdzf(OThMKs9Vv0i&z8wI_S~6{(Cj`_X^@|LknMp z2EGKktVN2aG6%u>yBF!YHr3yYkS^B&y&TCr$`SSV5c+#J619;L)mE?^$oFI@@NYo| z_aJk&U-qEet-seIn=`<|IkQ(Gi?2bdtiRXxQh$$jQ-5zG&C|%t9pwKE9E$pTJKl8f zM0eeu>hHzO+k6myUrCMH2%m=Ib$25WK9cJ1+kop*yr)Ki`$NJ3^W>J4Xn(A*o(y#+T}TcMLf91Qs-X;%TH3r|1I(NznF9KtJ1#!>wmzTTKrv}okILknfm!RW&OMzWUkIy zSQ&04GivUlCc6&Z$(j7!ke!V88Mciq=WlDa5l_0|rL(ge8Ta3peFwUp1zqLuH{tIk zP;p82uZh14vJaEb&r8Fyld{8<+sc}A@^@d>6a64>IXDs&E$q0;pZ9*QOKIZQ^!a#M z@2M(pO&O`ecHECU?IJHF*vbi8zgNYA_Q)8K(~7G7*s-9XRa3G>CDG>1wr$88|`JqB-R8!Vf@riqlW~eT;ZHCT0#XikIhE>#W_* zQCPX)D0tAnIR2*9Ql@Px=GjUCEoa4oW7k^I9p#G=cKO%acy;G|<)EVk&Kyt%%tyOI zvEY1D$F{Y*Yx4^@isP@u+lJFFE+@pqamAMsec`|35Thv5QsuvWZFdnZ8e%lg zwRyC9x~i_L&=<#FOM$bC2lL(258M%-zVP1_fZVmQn*Y6x*LB8AyRIV<+8~4fS}i(z zJ$6o2xt~Hh=U_NKr%gp`Y0NjS#OdwIxi-#oas6ahTGv*iUFM|(@o?oSSNkp+oGUyJ z>P@EQ<5)*CSMD=hG>oF1r476veSw_+j)oKsi|FGIp>-4dpG__k>Br0}nw*xZ_8?b$ zp99@z!%cl+i`V}O|EDK=Q%37@5&gWPVG4aP`9BXRHogS@uc9y4gsn&Z+as0#TT=h7 zCdgXLlI~i#h_+bKa1lKa z`F{m{ikHU!Hu!%Ft?fOuScCt!|4#hB7yi>GEf|9Tx6|r=6uZ=IX?FWt`^f+O^y01m zIsf0^2mU`#U-vQif0Ulm4fL@;12;dxZ_%)nHopA7JJtV-=;3W(7I|_0f3D2`FVmBf z|IhT1|KBhDpv?d8!oB;jd8z-kyA=zoO8>q2Z%e(>bBX>-P%eKOF?^QyYw|RnJEy2T z%VS53N-il;AAU?}d(8a&%X=60lq#j=*Jd2CyvqHMed3*|^Jl)#bIVi5Idb)V?O=~5 z?|BKO_fdi^^6&|aaw1+}64%wxM_PM8rVh9Q+Q`!$QYCL=|9(RbtGHN>ZP<7gK6f$R z6u8B;9wT|&93T5qL5;tAPlZj$tSfGH>6arVd3>z7Y``)Wx0uy1C zzpk?@-Sq5{&i!~IB%xpQrjmv}Gln(-b1M#?epOOMDbm|1>Zm>k;;H9U$hI0xc!XGs zia6=f7+JV4qc~!iAxSGBrGv=u;r+wjE{|T`k0ikP*r+=4l z$)WHUQ~yQHlt!Wdv_mML+JRhEPR>XLy|t7<;};F#kE|DZNSuA+W^xTF4DWeYEz!eG zUr*IWD4FMQX-TU(lI<8n@EUHa8t6>H9F^HGah^Yu#m{p&wVRetm%)!SOXve19} z#f9}re{Jz}-l%)0=~?GKi0TBdq}@o)`sfu6`c^CBu6`H(vwCCe`>7YLG##DbQ0}Bo z=s)`(qj;ypjpVAL|Aa4Jp-x!bhf(ibp?2l-*fY>NS2XA|If}IEKP{o|XXaYOq5r%J z{pXH;T02G%EBt$%W2^2F4{LI@{xgq(Koh?3?osHP*RIRs)8hTB;p8Be<0(1z!n0PY z|J+l~LqB(=QO_MMNK)Lr45Q7Y&yRIwI5AAq1O#KTZ-wTImE*Nvx>NXgew}gPby zb4P>Ff9{p3_mcisx&9jiEHM{C8(}kkJK8Mu_HPDSWkYZ4(0}sMJ<#0qNsXyZvmxEP z&(lQy#7tXH(V*X9uK!#&&t1>7);W)OJoox`>shEjcIZEMXjA{W`h~hktuqFS#H#Fi zq=x>R1Q*=tPd`%OmHsi~L)k4FT&sU7Woh|z)oI65^%J-J@!Y!)ocd3H>d=4kw_5)> zSKXRft^b?>JsvEBTDkt4N(sgsM{Y&K0PH%`fFkst`*2O+Nei5CXUmHI8%M06JedwA zQ#A8x4H=h`V~^?>o5irk;R$xK09_8I-H#UR~$< zj?QhF2^6z{CiLHQo=hWl1MsN-W+&RIbH*l~6oYUcIEw3Ba?qRGJxkpYQvK(u`R*&} zP6}h8nldKs8cCrH>CJD-QKXWG&U0};%6f8gh0D2|bNx3NDD{_9|IH?cqCtpSDPbNm zr6-}QWR8InqbX-HugO~bm1~i&Oj0R$=|J(;)FwYhtk7~Nb z)Cp^pHBF!8Md@jA{Wl*Ab*}&B0G;iN(0_B06_4@oYzFe^Zf^CIH;TK^e|qc5>5Bf7 z3uDMJ_O*1id3`4r0ryyPQUA>#MPKw^3n>;+uAWPB$h9h$V96T>C1wEKEXs1#dH3;L zO1%mFr$1i{an*m*@K12{uO{LzmWuA3dS1r}|Y7A>I@?s{UIJPnxl} zE+XI6{4Rt)&L}7vmcz}BKyQM ztqPwsaP2z0%Sf&M(~I3_^NG0;`O|B9O&`W5=3xz=#)v|$|F(j;`p>nF)#0S9f zad_A)<2ToT?$g_!R0H6ZerK+$YTV^e>lh$79xT*Wh5kF95`O>sZw*jP zV{BpsKImJ4>tx_v1TEEd?x>mTza3CZ-~0iLLa6^v<$emVHE|W~zjef3U6j3e4y}YH zOBs_;|LLJUzO)H$hyHV&E`3fHK;c~fEk@c-<%#<5L{iQr{$`*UK^;_1u4 zT>a-xsAp5Y`cMD-bD_s-w8qV&mxSkkWu!wI0zg+*Fgol_<*B1p3+1Llqjt7zf zcw!BLHlhEH0h*QR*uiMeIcSCxfwG>_oX~%pDQ6d@Y~!8#2W%s@X+rc8`VY$KyL+sI)be{=BZIz&EalfzE9vyordD%l2&&!8;zpWdCt!enY#uK%uObfZ6M zL;r0;enS793Iw75_5kyl%tdH|PZj-l0ADfnpWIvz7Tc-&=Yxy-@2aH#u3`L2{dWa# zw-M)1G2n=m>%R-3`~)O$EErzG_*q5&T}7-6YFtEFi>V2tC}SQl4u)3hKWo8ko-crJ z`=I+}=)bed`fnGIg#LRuF?0R*D(Fx&g#No73Dzh70{A=yEL-qFRsZRC{YvN%`tQ}H zi+MK*AGwnmkD7-(oyWWJ_!!@a1h*ie>c4aGLTkgTY%aBYC*0Xr)_+HkPTPNXg2C@! z|J{cEyBY{a;P3g?vi`dPTAoW;_d}VNp>1sc-47p@P>arHJnM4w-vitq!UH_?-!5Xm z5pUeS>AzP)fhWkJjq$BRK(Pt`$OG{22H-i2Wb4Nm`cHrPTdA4uFnTcQzdwLZ?*JC{ z-+dfs;BOfE?=9px2d~Es>}zl*b>$(vxo-r%1JwJz=)YGa{r6nbfA_<`KS}!U5pvJ< z-+o31JL2i!HJ?wSmmco3 z{(BP44zb6u`tNGw`w)429$tAo!)WKH(0_U%AH;|Gdi2PvDe2v5FOMg9_b7i)5YsgJ zx-Lb+?jWZl?fUOw@c0ZleTdjk@cU@d>VYrf-PBk;tV92a^$T6}->Z`T({r&I`5A@8 zuR`*^ne^Y6@jiVD{r5~+|GgvWzx$x@o2VaeKsG-Ez7_p;n0_BZc5VMTKcS-k{uODu8%eo?`tUF0btAsy>c6KL;ST-xkNEMb z|K8KC|6Ff_0rj`gf6pR|UkBqxFnBLB9@KyLruN_e=)Y+H{g3`DAp#a4 z@;}=F@n`kQQXTU*uBy+*Di$0=(b8so&jz2wb)56-^fJZG;fQqR(Nl0lBmXm>eB{+@ zQ#mdkWjhXG+1|$ppx61qWx){8o10@82BCCx!!j%5#{q$`Ii}E4h_POCFkXc|T32I? zJ4SyU%?ms&BmeW-^2MV2pxw*&j#tIlnvgqwWgb2WxXsTEZnhViML{#}A}sV5H^B_HWPd2Td(sc*G#~j1H+VC)-ltmmRP= zx~RR~@e}DD2x-PUK|6(UcrJZxP<6ds`6qFa=J8t2~p!0uXy$Z*&V(d)bhWtyNSSiEN zQn3x0D()|?MN?apt!dZ1a6H11H058Lild%NRYm?C!PBR``{2s`N_~tuyPmD`@2*yk zfjAoJin5NyNfF0NloxlmaHPmF2TSa^{^s&O5;%vFm!rq-VC)Jp18IN9$~vxR<5)`2 zESG=x!f57=D`fQ)9Px^Ew;Zu^3^12}%P_t6Tvz8AP8Q0)qhI~#m4^H~no>*tg-Sb_ z^BYii?Mk z{}v!?B^Rw-gK68lCdhDl3zNxP`B!2mKt)GSdzXJ#I&klf>7(lmk-n!OmMu`j-K&&;tqhIyTU@8fwPEH`o_qLC0S{MJ3H?7E zdC z{dtxD+3>s(C|clwt3qkcZPdC{Z7}sKA!wyKVkQ0bzPiEa!0+aHF8}MW$c6kb$8M3b`54VmIpqIT z_&Jl_|0f{r%l~$`c&IG@7h$P6 z5i8vqQYjaElKgM#DSKofvk*ud&zYvmSW|9Pm=#zz^QoH1GWu7{l+B! zd*R=5ETi?<^wwe_x{~_69Er*G|C^KizoEzMFDK0f&}A?Z_=Y6^cOw5!@$4eB<@qW=GAlK(fu`8Ti{#NU8V$p0O1J>>rbJ&_0N<7}{9f*ije z`|cl7)BYJNb) z<`zDGwaX7Xp(R?Lo~}Zqt*z%iZFR0%afI4_j8Ir^*uL!f)(&C)(n6y@deA@C+t#PJ zcF?Y&y+QxUuwU6Lw2$bM+CeF|gB;ie|>t3lpp+ezfUa>`n2Z! zw`E;B1pmjD`LFk^HVW5OF2;Z9rC%G<$zcM{b{*1p6 z12KdD`p?RLXYtGbDZTWXDs++m&boIM0)6Q8%hbEg+4McPsw(N@D)?`Ic@h+m|JoO3 zcaGN0{fxwad#-vB4kFz!C@BAJ6V?uc=*8>Fw}7^|{@2aiMg5;c`?hvyfl>{$$)-c^ zndH$5+uMaBaC-;Y6f# zf0_U5s51xf!Z?KF@1*6utyW^*XK329k(KRGK>nWt-1X^PjQ_5Or62BIXur9N|NG(p zH3iDo+iMTw{O2%AujkbadPJ`4b^`7G;{3mvmi$86^Oxe=^Cqq?hK6tL6aVj}{}lCq zKYk>A;s1?g{y&E|)L!bp{J#wTf0VvO?Qk2l|KWE2e}Ocwr?2z!!u)@hRo3>?AG7|u zZomP0Mc>CO=rioy_)P8Mf%y;0{C^G)kjE4Mujl+V>c4BF)e1j`S~tS~AK(Uf$=Z#LKvh{zU#P?tC6Sm5%RyoA*>~FLzCEI=|%kVH-1Y^G%+c z?Kktc&)_#X4?gkFcCq8Q<`QK@3`>u_kcG4D1;)GF_7b^E=w9VUFvNUVn6Jfn@}7-&wbN_tyc&Ox#T>k3XWCRc&L z(K=hWjv;Etb{y39X`X|5iodzU3^Kmn+<6G>il#3wMWn3yX+e7tJ_lx;V6!t@!tx*tNEq`|92&5 ztMNazjQ{a)VKcE#fEK4zhP z6Og_f|HB>d--)g42xaE@AI8F*Q%CvV4PCB)Mi+wrA?(msVK=S35Bx78$4fbs|ASSz zm$2+!!Z-0TFnc+9iT|B^@ha(`1phsh|6ZVQ#pn~be!S}ao3VP2lMhA zapX}e=#8Tfk#Zv>!GHZ1np0l2_~&kO&QX*96Tv|KkA)iYUrN+UAN-#{E_&a{f9HbP zg3_y}c5tl#=lZtr>spyguKQrPr&BTh&o1-dGAF!5{?7yBd6e9m_&+OM7304xu9F;J)a=|M@^toByp)+!6i_aBl;&uq8Z+9Q9u+G7C`e7iX-< z|IO|EUy5yKO`=CF`mLq(1qn|1zq!o+wOp^HUAd@Ma-dy_9me(F&rV!l%@g^52Iqww zwL3vhel{{`T3UgH1xwUR@n3jZ&I|2t_X2LI2Y&DpbGNS^UZyfHfS|6E#p z#rglr#Q%-73@4KA;>7>csQ>c+WQyrs|L6RFE&P8iBmb9xf&9N1%&yOY?BzTXkAaJ@ z(p+BV|C!)(3G%S5)CT`g>m_Bp`UCi{mq!VkREhERbEyL*M%Vks|0m)9lVJKfWJdm< z$G$AXvC|zOpWeen*2J92xcw4527>>uVdsZeFa~e^f3Ek$yzR*Ut4Q~iGXFotJfjC| zre8@4=gl1jiu<6%QI0Pq{@;fz-a`7``FAJtkDdhEkF@juUDW?CCjLKKfd7wD!syzjV)zKh z54e6=`JLyR%J$+S9^&e~I87+W-^m#RaLVhoTocc{*vus2QbyaQJTp(v9zMG< zo~5#1L;UaatXxjpSzLRZ8%HXa{8HK*NJshRS8C&2lg7mReYJR8lih4k`b8_%F&qNmSK=Fos3A3n^1tR~qs&Z~*5?80|t z);Mh^a+t=n@IBmPQ?qf*Y1~u^`fE?Im{RT7+>U|Wq?Jt1gGaP?K(ob++!SSaY$han{w)Yjg z?j2l#0h)gO>g)RhQ&r@)4+HbZIsO2=@8Up86AhtVq8qf4Rvn&iugbtn#F~I8XI(mk zZC~a6x5(pToIe-1B%I#DwYYV6wz*y%>gww22MlOv=+`y>(w_j^bHFNJ-^6v!^D<9` zyVS^$^Y|L#Tw9Kh9CR0~uduLRLQJDcZ{cf{`wb5GR{C@qpZmKx=lm33-&S7c8|C{dS%yPYy82Ef8vm0#Q`UsbLmAAkE4-+yuN%-% z-#Psgl=~#*e}MDToNwm5m-Mga`VCxP#Px4DuAq$n;`lY!k8^&K^HZERa^A#wGiPaY z8%HZ?-^6)&Ila#oa_xKGnScI1eWyRobMyZ~`Mq&HNN;(@5eCao@Rsq?Pj)?w4?!%3;%-BR%83t(p6A zoRtIP5I?;)kNkageA`OKC(kyTx3-3ZY`@B41GXHMUSHmYf;*-iC zzdWxTpZ4@s@CaXm(ef!T9ZftN#?f0y{D3cY{8^WhnwKYh!|VIOjCw*{y*0P4F4bPN z7XSU~`R^g)t0@04?~ZUj%J~4tJg$}JgPaGI?@#2~gZmE83cT+wek!A!U;A~{efzT> z%Bz0ge%%Xv?Qyz+*LNM>58$37;fqwal@Fiw7_2YpBjh)(zJJ4j{sS5t1~d*F*f4O= zAilyw1`lp(8Zu<)(59iy!-fqTKD@bk#K_?zMvmgYl<^N2y9<-4&+3l<1diWwOyk~m zsLw$?9rSA}Jxpc370vB9iO1N}{KK&qZ z#P^FFck=AZoYf((<9MF?uW`1H{uRe}xPOxKD>&1hw4GJ@G-vhg=Qvx(IZ~VRZ#jRM z<3*m47q0ZBw!i26|5*TML;2Kx&Y$?azHzXP(vhRam7C==XQedNKW_qVzXN~F`5w;i z2aT;jNtC&Y}E*Q-XIp*YD$6-3;zI{}TSZ!<-o3dHH%H$LqPjh4T%Z!7I^7 z*$1z-MVyy#ytGh9GQKwTe0C}sl<}%O=Lt!_IC!uQ`_O6;CPM$+*2D|`Mj9x zZ*cqt*I(x>J!*%HuVAks>5RLG@(6i8%sHpoChpN249CZiyU*1#>W9~G-ov@qkP5C@ zzBZR6zneKPB}404_1U_?yAHuGJV$!=1Ac$Z(I46k;JArv)2!uK&#{yI{O(=AaRmo; zHhsJQjPqM~9|7VM;y0d@f7|OA-;dPyp2&G7#}tlf|9g2*Vtn zNmJn}-%IyIf8QP2yeWU%suE^36U6-L$cEGE&IGn*8qM zI0xC>#<7#SRvGI2fP8IT+;HkrER+7Pb>{BVw1MEO>HMa32R0>n(dh`L{m>}n*>j$@i#C1PHUUrHZ^gR z_|U1kG0)&EyknaUdJ*l1&k{$Cjm}OrC-eK0QBXFZsj+@Q-0V_=usyMvosi ze%$EcV@3=aIb!^n1q&B1S+;z|%2lh^tX;Q$!^Yz_mrE2O{`>VCIwb4YzhA@P=B9>$ z&Gn;34Ij}sc+}vrV@8i0G-mXe8M9mG%$+yiuUN+*;ZT=DvikZ#6mI&)#wGw5I%4$r z$t}~nG?|d=Aw!y*M~@yeW~{B>0okBIw#|nRA2DLos7X`#&JAhS8mb0NL2az<0u5*1 z%05-Yz{ZBgK?7;m4<0yp$Pm8nLz|k04I4VNxp`Rgh~dMBj~q#EqeqS!J%<0WXZ%QHQwdC^Wr=j1V0a<+`6{UZ}kpBD(>Tmy|VbI{F z{sa3D8Pqhm0Z|-0bi|nPHXNr-pFMB>f`yBgEM2y|b2%w@(5q|A8nOWc`#1C-G+F)Dq?cKd=*3sR^oqg`IMVGP;=axN(4qbIk%cV#5 z?YU-OOKHY|Lzf=BcJIEH^+&JSd*IMDi!MJF-^uoe2d=!5her+^O3z<$)q%Y&y_YeE z=xcUgGp{9J*nI6}3%WenweRSHmX`eS!GlM5&@#8>HG@ifF1hN+H3tsuU(j-(E7qk_ zOF8V`edV&1s}9U-Ib24SVvcDU)a!f7=pjk~(8J3kk!#Af@fzU(3c-x*d34+n{ zaCkSMl6ZE<96Kb)<9a^4yG;0w<&_^+V6>p>beCOqq(vsT9N4hrm;>u)?LFqe{P~G_ z9plZ*0or|~%-VhQ+Dne^-go%GnmN3QQWjKW51=jcTMoQzE|jS*k2oMUe}31;kx6>< z+Cio6IkdcrLwT;23J{R+z^3RFf)BBumJ-yE<*VFr)c0Ik%sn^r{oPIsMZ>M1Q^jTJee#>gmZ&?lc ztzVWCu!r(%&~I4{`Yo$LzhyP(x2y*Jmeru&@^<V74fy10(B?E&)=1_}8bNIfq(5M`1iCr2HtPFjJne*eY6%X^XahDH zGwbx)XFTmUy89RL8gC!^O|+0OJ=$1}JgQP)#;nWw$Ak9w<+Psq(FRS!s8!EuUfSQJ zHJ`>==o6*0cj+ZQ})V3k@+P2WQJ)VBtiO}klj*+VF?7dAbO{2dy4@-&tIeXXk&0JKj zQ$R?24V|KQxqV%Y&}-%eUUn(4j}K~qSMzm9gQ_MCGV&Yq4)os8V1cCopIi+WG3(1- zl5rw_|8#A8RKH>8+6?74_J4}_F$cgk3-k!D#E(5l+-t%38cyp=Q&Suj=_ulsO4GWD ze>%^{mG<(xsf4KGXKDNerCI!*m<%rKO2TtldOMGqO~%JqNBnQ_J2`2v1*NmNj`;6S z@qf(<-l08>a~aonl&s?az-*gR>HhTOl*}g`gLtV1J$HYVUiA3mtd|N+y^1H&xL9!h zf#p-_QV17-cvd?H=SeuT()fC@Tdp%n`lmc=r_W=^h3epJ%p$=OU2WI7Cdx{za^hS} z=YiA?t_I^ew$6?ea#y-_#ZBixC*8soiB@_JaSeCM-@w{uvmUCx4WK92i2bmmESdAY)>>)Q%(tdr|(6lYsTo$W47 z^)oetdZKe#&O;~?Twlh03!QoDELOe#-J7HzSHlWqFsjUd*9i^&JNqN}Kej-6_tB~c zTh~K%zd2VE?Hm82wn%&VC*`H4JZvaXelGd)-&N0;)_Hca(b9M*8!ySqL zXIAllU8y+#UEA?6!&v*_|B*8PPjCpUW^msu_n&l^%t@r2jQqMXu(RQd@qaSXI-KTw zU1>U8%lSW!Jc{st8NUB5bT4xLAIG{hn-c#QmAV@9yP|V3U6L)7y&cHUfSVTp_py|H zF@yZY_`jXB9r?eVVv6$r0%l*gLHk_{&gcBU5dPl^O^WmXVcKeUP-f2mTd9i=>3&c% zJd*1F_i+dK39ZEatZ^d$-%b7REB~GOpYwlR;(u$+(xuam(rIP>?@Ii4{ae>@F3SHm zCjRe(Tf=DW%Ky7cN6G01-4tquzexN)!fG;a!i7ivUx$mt8~eon7vTS6)W5ru6H;_V z<^NqZOD|F0#%xK}lIivev(%^nZ%E zL$|_-p#R%g|MncY zV!>8_4r!DZ7(`#dIn0$_kSlij7x8@)J-5ig9=kn`9OfwBSkbeH{ATJ$IO3{9U4zsQ93qx?;${$IS0`{SPh~Aao{O>anB`Xm zPWCrkt-+mL%+)@G6m^A1SEP_P(m8go35v$f=~6vf@4>U+kUQ#_qpKOkib`S=`^Ln| z3UbH(xfHiNITEX(7VYy_qb2uD9efoNbM$Pv!tb@MX)R2?b+ril{5~C$Ah541RN^eY zuA<~RO|F0tt2%i$y*T;jicR+TUHw3rl6JBBLp5wguBEbTno8gPoL$}2vR%{2Raaf* z(|0~GR()#W*}oPed+)Xr#mt_#wZe5t#lv+QU8Peyg!1mr0#d1wr&`CX?@Fx{Q3~w; z`@HW#sg!<^r*u@;g+2*=6SAqqh8FZ`#EDqG$ z--ICQWWXZlT@6Jjtr-Tfag7NNW4Y3Xma2%W>{-jTxrH4~h@)2;`d_PxQOjKKBSQ6iEr%fo6I~`H`8my7x?KjlgXdN_X zuhlL}kMH9vq+X0Vsl51BsgCxTIeDf0n@8lV7K&JwpbnB>p^L2z%D?$XUR?Akn5Q!A zS#9QbRtX4QrrHNAH3QX=2Cy(8i$oiG*f9t)wZiU6x8ry`VTR(?` zrBqPgC?!!p-Dk}@E*|O%?Tyyo-&Oy+CUJ(G=lXvf`A$gI3-$k4;4w7tEcE{fYJyry znbt-<8n~>_Qg$E^jz+qLuZ}Ba-*tV|4({fr{&$D6(ErVxwfc`tW!F)gOz~2Jj-%CM z1;fd+qW|5It`bIY={O}5naTf1(Lg|E*AVJ~RmZ-@RVpuf4SSp^I~Iu)i}DYwtMWk=Xgi`-^#OU{XZMHTPSxa zvM`0;g^crpKd zI~1s;ZBeO}hVnk|N2w3hx9UD{&b)-a@ zA4W{`R!11CuOalm`p2CiLjPNi`x&bH-2c!ouzGeRkhlhG=>M@`;@Wd+lL5TTd4kIGZ>lshh4@#^ep&`fO0DtrJM?{*>zfaY$V~@2s;F|?qyC=_yd~s!6(!8&*$5vJ1Y8r0dH0! z^XmVlq!0bS6ey+eOt7og|E|p|6{7vWI;H3X=;f$08Feak7;A9lvJ%=ro~{7Wh2@w! zG^w$-r2Au`X@t)DeCL_qkS|3%0G4b}SfH^uMJ$Rj3sj>B!Z$5c+>Z`evSi z44lK7W$U5b;?gOc)&HmAel>vKW8stS|Iq)gz90I32U5M2xa$99=#njPaTu%8u7sBr z{l5~3)&KJKv?NQ5u+=wlZ~NkSxZB9{-$nml2+ynA{}*r<`hOi%KM78&|IdZXx&FVn zvfU> znf1GGVLT%)t~l7j7}hdM+Yc4y;smJvKbrLa2_5wRY0&Wy6uTD6odXP8;Z6giAOm=! z{y)9+if;7(Zr*G`|DT5RT*Bzse%$X4lIl44wwJ%(MgOZ)#M>T(d!p3w8|{DfzbkgT zHnjWGYU#3<*$l>^|9z`wch^;WA@1v{2Sr8y`@OR_WUMK?aa7r_U9>0Ea_S7rkG%Ru zecckr@i&%puK!&Hy9J4v%c1^nq4c>)*NMR_;)ecrcg$(jJNHGILX0N(z+eP$ zg-1!W|L5~W{co?$H5R8(gPVzO8_BWW(EsCj)7KE~|6Knciwvp%7gO2^ zLnBQ=nzjP{R-TWdmY+(Tk>LMuN7awnj70mL>ha8ThTytATqH6mSpKk!XbRXtgcm z=-wlBXq#!gQM-+%HK881J=nLfk~){Mc6R9hjmWR#Xs09Nq5m&(aww9z3OI88zXxeP z2}xdv{O>@PL;tTqn)f2tE0OTykoBcts{TKbtM$YQ{l7DPxwevfGZaz(pNurwQ+sLp ze>>b)1K(VQw)%g25BmRn;%!NB-v9&=F6HEyx54)RL7<%pwGXBzX^LpNx*9sSmTu`* z|6j|S8(xC`zZ?$lXSDFL(jKPX?_(uI_5WVRGvCAcHSpy$#uU~6Z--Bp1M_vPuGq%d zZ0P@U;XtncuR?m%|GUZYA;yCbBQtsXeHm*|+e_2`&r)9>rjGpt-vRai7x5nWF>-KSS^s~E zn)N!Ud2{+od=Xw90@iKYS|HqlE|2jNVZ%F$8ec+`2e~MAy$AS7Ssr~<0>D$zS zkFk&C7x8nr1dr6v|KFgVd>EYe;`?Cx|F!H%)A!I-|8GPu=wNP}q@w?q^K1dNa4EXt z7~b@!KKoXmp~=YFJYaCwUUky~w7PpX4NLti^}n&y)vKs&@@63CwaC|0a$3W?(EpW| zR#806b33|n3J`2e?T1|dpNCh>3iSTzlztxPos?G5|103ic%Hp1>HkxKb^~&M3MrPO zcQ#XBPE1-w{l5;*ji6rS`hORC_IzY-chdhSwd?=wXuiIN;lMT|Y0HUd$%_8J6bZPj zbT6=k{=bztx4_@A9O~)YSnso={=bFV_W(8cT6E}US|E2+>Hq7g8<(;K$ANbJufId+ z|JMR?=>N-*q`rn+|NkNSWjb>EY5Zq)@%w#rkL~|IPx}8WtWo*_>g-_Z=~7lGUCPvr zC(ujk|8IkjU){%$=5Mk$>q?fVcp93&yMz9J1GIiCei1vVEk}6s8tUs5d?emZy-@!j zLHoR$68jpqQ-i)rqLG;??@Gx(Pd$5qePHz;vi<*w^wggZ1MywSkDT^Wmh1mt@+Q~+ zf5i2Ff^D__f5fDOEOUp5(V6Z4C*a;g%PwO97xn+{ ztfK#a29>^E*8l&7e@*EBx!FKGZZ>6Kr*{4+OFO9lf5ncq&mc2@kN*56ay>TNm8t(f zN6q}p)S_5fnw4FRXG^aCzX^v!{}0JN&Lo`XtT}s>--Ku%e$?P&(--w@bo*}VV;vms zPXFlBbTG9B4k!Jy4QcMEf3BfLy%KqQ75e9dq<>E9RsUQE22;_culhadpLbDzE7Tok{&}kOzNCK+@Lj)`y~>X8jZy!+ zike^1KL@xE{d0iY|JX~=KTos3)Z<8=_J<4L>DT#+eT*+tzby364_GAB_GfE$2nkq` zjV-On)IW2w2TC8}FWR5~ix!jm=h!UQKf|)nKOaO-e!6r$wZC7sJ`4TxQ@$6sBK_Y< z?a#^CgUH@rQ08T!jPN62>4HfI~2|JKI4=v_q)3Wokiu|m}ZYzz*{C<_PsqkY>HYgj-e%N!fmh3U! z^c8*+M4}iOio3Xuca`Urd!OacEiuobYw5<)3XuPWpMmk~(&4Y^J?C-aZT=>IZ!TSf z7C&P;ijiMyhlm_wWGZ|ZqQuB8a?(@4wEZ}IV!Y0wK0Syx#xs_qQ3JSgTr4acTH(Ui zAVo>f10sDSge!2bvkOMe?>r;kL)@2CO($t8%O!HE<3W-HJFcnIL=qd_xaUBM~?wLvCP47e#_Bf z9HZ#rWfqvaZ;C0k9(4|m+4<+VuzxYWX&(AJIQ|tDZEXU+iy1&#q>XES`T-0D4z0dT zowMh;91ST5YWpkYz|6pSj$SLQ)w9NAi`g*5?cvp#KzCkBb zgqMfB>Kej_B+}-iq54|{Uqf2uf@v)ycpf?BqqkDdC*8?^jE6aX;P|Qh*Ed9Nn^U#? z>nma`|9q}b!C;P%e_?Q3p>xnjUYnG&3zZSij!yVgne}W?${a}zctQ^4YbA8e+jmNi zzoS$6ECEE`A^%!+oi!t+9qG`z8YA1vzoV0m;5sJZJ}Sz;qn=%ZI6{+ckf8+EIFh%xj@>gj~KVTk0F-P&^&uauHeY9H$Wu z(>iYElkVi-(QI>(`|k7OY}5(-4dA(>_syi0!h674eOe=<3Q{5y^vqZ7^(3i($C^D*a;|B%Wd#ONB7f5*M%gW(ifwpxfAdE$PE zEVRH={aEyscdW8`HD*guW zd?Z$(X1LbEpSJWBDVFj-mHZdc>rnpn4+!~p+`MxbMqW{amzFjGi}HV5S^gK%E6L@5 z5qT`*ZZYvI^6!32tkcUOc3r7seC2;JJ#dYN4ts_2e3Vp722Xv`A4`$?e=%{D z|FfX)Pcf@Zzq>?`P&bi2Z7=MT-peA&ZalKjMS%M)2T=D8j-Rqx{?2L zupEc{Uq|W-DX|HwnEHPwHOO&{OA}15pvU)Wu0sCzq-O(pQjz~NyOsZ2;r*c`|L4(T zSN^XpV{jZ$zaQ)6eM$cB#*(i6`y$TQKyBs!%}Cl#EEl=_U)fCwo#p>-?DZdQm;cwo z_XnZ%qgd3G|4$(+uSRaR5+|4cKcU38@@5Ks_O9~(Jt+7Q{&`Qu9Ib{VtHdkur}1x3^=TyAcfj6wBoc-N?ThtpOgdN7C0K zDQn>IOyD0#+_g#mms0ma{`FW|i!3Ss8=+}GDCt~F<-di$`ANPKYubO5|EMS*PV7l{*MQOWmv*SQ`RotpOfVO7|QKl{`X+F+QbOOX<&LM zcH_HCZz#+EtDwX}Y%4b-g>$e|9RjYS>8{{b=j}Lq9s%QKS{m#GkAL? zv-LU$zgoHcT!&=7D#_0QQmlg_XCqZ1Kiet)N~AWIpVuY%xu#uyE>7}uQRnQ*L;1Oh zk))4tbp_V1Kg7=aaFU=N)k3Hst3h_Qv19~GMuXJ{De)s^`PtKh{A4Va zwW+i)JFPS=TZG;3ZWiEr2C6<)8ka53l%E+{EJcj%En zcG3DyVQq#D09d5YSDDNCbZHkbKg?3*e~t!z012^vjmyr>8nf-$KLY)<>@qBF|5`dL z`&Q|U>G{|GmC$JYF>m4Z+Vs8& z8-e#>y)u?pwz7)^dxQqt$3o~ABB&ddHCyP$Fi&%|Ofj_|StQuQ49c5YYlYSmcNLa$ z5xmkS5J6mQ&j&rr4|_b>zSmn`uXFntVM&O7hWU6H+;=uG)7#zlf8d>7_VS~ZLYlhf zi4?bgVxL5dQrO(2iM<-FGeY285bZrVcD-btUR7jGNfc}QV_xSp@IIbIPsmvLyIQ#` z7hzY3yp?gKFgR+yAunP1$ZcT4l=Gwa63k88poeMf<0%{391KAl&p|yoEpAe*NRV&2 z{A;(;x}^LoA-Vk9bCmn`>9tsf{D&p0Rv8VnE}~x=c24DA+eJvAb}M6qZA^^pQO0ba zkgHnxYZ(ixsCE(O1?hFA{OjlI+Cu6JXDH?Lc6U{=DJK8JXhTWS;iMT)JKY_U<%I2@ zetaGE!ZlRne;g2ur%d~TwZm}QUm^eQ+1#IA#0YwL75O(8JtLdRQ~4jmduIyeeU@4! zgk@H$OO>dVa#`E5HZ6nq%9L^-Rg9(HD-x`Wv4^>QlQv3h%#PKb9`diHOlzbPrgRmT z{~^$MAUKEoYkAO$>&zEz68|0MdWq5pIF*JIFG8!ePRns%+Tt%?LK zV>439Ve~`i0@)mBFcHcq|I?s?ewBLDDF2qw3PvqJRSf>QqzU=gdwUdZ+K_+k5|e5B zG;?TA>?r@sp{Z7_+F>}YbLGF4Jf?z4wfxTkPHiSL=u6m_oZUhG?fKLWq22Vzca$bZ z0Hk?;;Lo6tL0g#eug1|!Soh zk3Y)4YX)ldloHkQuU*bLFQYj-V^7ma%MRA1zO3T5c!zY^$_|0TfdT2v$HFNXZj z1p+;smm^_|XxR?sZ87<&$p1nh9Fbb^T5BdHnRNb(`hO;z4*A~-9BY&OZ|adI)i3(d zGs@+E2hgpfKfQ$XtIG1f8u{Hy3%V6KE#VOn@_!2bx?=F>^1qEf?hatPB+35@dUZp| zHJATWkV+HHD{(Idb`TeYeTI+sN4sj*mejEJkVu!r}E?pA5G*aIVPz zDcFPbnp$4Tq?fDVSSXbL^P%WUdj1iuKVH7e7IjE zDF4Qs04=KJe=ohoR%r8@B>x8~^L+a5C1h3kzmzgJ70Djxo+1zR`hMhdF1_o=lltgy}`F{?(N-L1xg9Yp^EMI>KeXl3a?;-y`!Zx;>(%(zZSNXrQ&+L67 zK<4K`j~1l8wO#&OxR>kd2Yu>Y4R9SinN?7Jl>Z&zs^xY$JY19HUk|B@{GXTPe>YNk z4CRlYzMllOb`&8$@pAb;ms)=^oCQAWKhS z0lFOD;M?#m(qCEm{}dc~JGLX`|1Ysg?1wi+<^O$Ha9#w{_hVPfu*p2f^}XcuD|U?k z2v*d=**#EQ`TuF@pLw?x>&ln$mFlbfe*ma{i}h}Ec478+=>I$Ma~y_O(T~gWuLtu7 zp!^5m^x&+x{9gzqTi|9zel9M{ˬrt+=@TTjT(6<~5Qm?%H{3etZdF?Rs1@^d%T zQGTw6Cr@HUAAz0oDoQ?&I(P|OScY9`HTJxR`Y1m?1pXgVe@|zP;rZG0>}&A$eI4|t z^7C#iq#uGKr(knjf&H+U{`?-0J&3JJ`n)aGuZz(Ik5a$>JkjUDGJPHe!=F~s=ZBP4 zB;@q@1@t*1dk*_sU1@zbB9lH}FYU;#!teb&{QjnAugjK|F36nW=qZ>WHCR*Hh`D~tob>|-`vg1=awGV zd4DkQw+AVHfoG7{K3{I@(Mn;TGHf(tLI^(v`+nMUgej~e`Z*a)k>jr)in&+g?~HZV z$q;`>g~ip;X8UFa;dH#&xq{9>wN)qn_S6mb{hibA3MDZKeCAF>YskA3%^F7J&*Rx>>PjdXNwH@(ah$dRiHzV+$QfeW_ zLXO28!Vz8pL3h0#h61hDkqZ9yj-7$$Xle#s`*GzuBZk1={^lT{2>d7Vv^BkTw0#A4 zj;xCR405-nuZP976k{Q(Hy?h;a`1pNe)osU82FXtlk3 zcg6oWc(I?H)Exc;baVu4dv_MN+-6dg8vo#7lZ!- z@LALW{}n*KjK5RSadY9n^D%AP8N~k>@IM>;PY3_w6aHrs@4WQ>+A{vz`L5p%{)ZR? zJFOG`H_jILwPx?-+q8?gpHAuZDmX}~oADpmpWr_gN?Z@dIsb(JGVU9pobZ1f z-0o!L?`TRd{4+D*pPn6yukx1}p&FdcX9fZr)Dpf*{y!uC&yxR-Y4=Qm%df##I?w-e z)V}Kcf06P(HOuqQzZ3C&Nm;^$>bnF+k3XT2^IX&qrp-g;Du2@X9A6dnnf4~rdxVZx z7uO15Kdjiw)h?!1N2)h#1$%9NfpVR$*4F~)C`JAaGDc6q{$yxcf7QBr`sv@HCXP2f zrS-XGY1z@+O6~1vhO2<--CGQQ%QLn7tc_*Tn*zh-_Vv`qFM9DR`9LhF}Z%Yf|>X%SwJy{8ZUYhQ~t zjj8o64gS}*(N^<6Jjnch`gPYMtuOo^hK|%X%|24_zp2~?=nVrs+H7BpMIQzK)$g`B zOsyTQ<$51aAg%sVwuG$zwQWGoPcfGB_6L(% z>vr&eELypCdTDR##QC7hpx+X{hw^_mlx!`;f7g2m{%gr`uXkEOIOY18Y`nXYuT57#rW^~2lb?x$uR(^UDst|N4O8CF0%>VUxG;QlWF>m$B3;v%?J8K`UpW(DZFNFUWLeH~mrgwEHy)`Eh z+p$XfGV*^ie`=yy!M6Tzq&|ac!{CE6pmY9Dqc2b^ETtUzzcTTE5$&uKpx;E=(yM7x zF0GZEmTu1fedKchOUHTe|3o0al3cH-nf`Pn&HmPSW{RDUUsv$|^-#t232O8I71$b2 z#CCBnet(x@4S5{8znwPhLHK`T^1JFCgq;5m<6)yu+7jBGQUBiq|DWhRF>k+!r6lD_Ed_1{_Y zyK0tyW8(jr%#O7F-vIybq4oQ6tgN>d;{OBi|CN+`H6BS7{y&R-@JcMVe_gZu)9I_+ zg+=InRs4UN9>YC}|9@FC{p>9Ge^NFptLFct49~P|XI3kN)$|I2{#Pci#cQhQe+F_@ zE1ZobF6e(FSlm*k|5ZqJG5Sx-J^|f+h1Z_+pOXCq%ok;YGwJ`2SW|0-k0ki*cLe;u zf_v(Z`;mfg;9XcNjL8nM3*1l8AIH&q3iy9pTAT_0i#^CsrMJTo7ndkkN(CE)K^=+^3&TyHJoe=%Rneb}2i^M3>1@X_cL@yB1b3;xYO z=jwm*-~Lfp;VOl=B9ATk)=~?9BfGqJ&B%$??CYl6AUzhO*yO`dh3#Z{gei&Mx>b zDdRsIE-ZvkUGYDIR%76QI$xB|_}$7k;wJFF4NKmYv=8s?RDR(99sIEa|1WoXFaH18 zj{lFk;D2Ez|JN|aCI8pq<=rtHPVk?B#cL+zUrn2rsV%Ohp@KLGsi@Aw)|XyN}c z>nj{$1m)klz#sX4gZ$q^{=evw|MD!)|L;nNv#$AfDz1F1rj5V++o7KJ$nW#3cwUJe z&m(UBE>Ba*F;5+D^1M5rBNyXVLM0Ec{OZNo81V(Hl%_89y}y;GabMAsepCE2Mjku9 zGZCi(Rply&%qJa#->R@9_&v?PTz(;fz`UW8{`fq3;;9VQGyrn9gsSUl-H(RI8VG`OK$LM&56ac8X~&MI4MR zgnk_&2fuJy+r&Q(Q->5(zJ38&SNM#pAEh~H3(~V!dPbgF=fo{a4Ow;U&#$wz3$IR7 z*lG}`;B;>J^GhyXTB-cjnZFjJpmgxsZ+_0%uJAd67gW~QR$gdZG=;u&=A34s5(v5<_y-0;Y)CkV9jxA+3Qg5mITMD?xmeBJ)u4 zq6WseaxS@!duu(_b{Swf+RPtM#8xgR{ZW$VchuiGH>r?TyG2 zHH-4(c&OLbX`yzs)p7oyf-P)op(|Hghhxk?`aRNDdyH~u&2K700wPBMmqI{YZv7DFKVlFh#AUqN)KG;uZR9~74DexuC!Q#rJ>IpoiOHT z?pzhzxhOHN?MQg^d3xfnmg$cAPyg-Ef9~WP`Y+}PIBVFTM|J2w?}az;X)4=;oblgL z|3xoK_|#p_1`r4PI#Ot$ zr}{CGH|jsV;H_n$|D0)|uY9ZnqegJw5dGqvS)=tJ*MCZuBOiMH3?OaT5l(tyKBG-Sekgpt>x+nOi&_`EtrVv+1XHeoSu3dwC zHh4}2F2@)gQ_HY6xC+V~%9=vl(0{H>;@k=?5ALKffwY$EsDx`1%;IlyvM}ql;+W9X zBoVHsKP~as+fFk#<|4! z!VG=~kgs}C3e52_v8(mpRQ#fH{Wm+k@9t+9{b1X8i?K-L`fp+KsG19&?)=@z8~i;= zE!ac`V7<^^$G-m>p5*#(Cb7&#{U;Yf|IH=WSwJ@poaZ1VGfCkpFs^&Okh=!*5@J>_ z?2&%Xaa6*US?gka6P*_q>xt+3&z+^LgZk%({snjv@zJAg(*b3Z~#H9=TP~ z*#wSys&!oZMk%%)hyJrZG?Rl~bMYl}#)>O*=~rZZbiCSKhip-s$`HTlvivg*&bjVT zuK&iu2W7^cHA-;DG_$#OuNZf!2>qw+&EO0m<=ve(Mo}}=e=}1Y$EwwT`pY?fHjTS+ zlqAdpQjKv98m(a3>zvJH=nCIz>Q*bMn~@0jz?se6RHSSM_N|KkTL_*DdF%Qf!rDv; zQ?UX~r>@Kf!udRPZ|;Riocd2cx`E`7>%TdaGJ(|Q;I1t0C^Hf%boHPTxi~+=&=tNd zPedsItZ#l8lf2U&63jKEysWy;v zMv5tT-JMK~R%R@?U$gpeB{``7&fwWBMi}P+iTdv}o}CQk+^^?%)qkguSF{6a>Ay3G z=Xi9k|IXpQqW{jqT552m{ZeTY@L2;Z`foF^_7q&TWE(VlIiq#C{yUKL-#&71--$-v z%!dvaGQzsKtp6^?O1g$885T_2e-{&L8@ARllc6wFFE3^^UHzvI<~hV_!5*mo zJ4*VC;YH}bL)fBwl0U!N&Rz@s=e$|Hbw>f)B#u$Q>|7=HrO}@3ici*>*hxnj8=B(j zJFEVaqt*#MP}P677Sw-Q<70oWe#F#^Vi@Tr^4u>^v>&8k*ZMJ%c4S zak%Q28byEzG?wa$5M)%wpbu-J)#`pObf2tme*LpyqQo zg%RToVA@gt?EudW)TGnkxcYBvkNmxgn7gs^tN$*bK3)VQ>c0!nNt>XFt+NI=O&(n2`TdV)vo5mHh)qmGu1y_S@hqnD_ zK^*1kBq(woTs|xLn5zFS0jGYv8OWpDVf;D($~}xN}9N(0`vRk2d@fyzgHBJ;C$G7{PcI=Uo4}+Wei|cOPzrUY`KF z|AiN?`tJrtW?qDLZ@`!19%h)G$-AGy|ImNWL6^tL|6<~V{`+due=iX06CL#5tx5kq z%8a9Tg6)^cDc64wL(hLi|GfY&9%q(Hi8*ZF?U80aQDSyf*=(`tLX(SO1+1?OdB~6VR*wHm3I9 zD(K{DXX?L|N&lUj^q=3HX7U{YY(pr?w##YIB=p}pa%v(~Pw<_HtcL!310^k?Moi>u zWNTp`QZkF{T>stDN&lS=9?p-v5&idOWaAFJnO;UMI0es)di-Oqz|VUnb!0o^g$t16 zGr-aI-(GZ#`tMEDs&|!IfbW`K^xxkS?`!xRssFx`^xr+u{E?*pK9Ka^E2$^yzx$c} zr5xXq^xs#Z^*fP<7nn!&H1obf|9y)YlIp*^;qgFLs8au_Augtr&$4FKNgPv?r_|-F zC-k@N`tN}r>Gut!y^eK|zCfLLlrhndlj?iuk>~grs{g)QdXU+8q5qyw`tNzXem;*+ zPqqGg2sk_Hzkk3->xbySyU;f!Rx8>K%rAiV3;1(6GfVyVC8*k;>!0?b|7K@9*cCwi z_agEU`tMtC_ax>3EXu|*mu*Ov>%W1_4frMAHR`|LAW{DW57mFOvtKiJ?6>H@^YHIK zHH~bp1g0t3v&F?Uz01 zcI)r8$mR^NaL(*i$l_~|D(mmHz0}{M-PGUPNb@u@a|ii91Basi-i|ljJJDUYr}}#_ z^EMxZ-&azjHo~Xjc-`FygpZ{9`!?XZ6z{1~;QkP`#J$IkK)-{?^6jbqzL96PUmX8# zB2~}zcX75Ai5mu&8d!zDQh)n11LO0hp9592Uv5E%KSjLy((}}Thp5?KDvi&+o$Bx6 z>^-dGbpRo#AO7B)`1?bo@Q3&oKApS(zL)s>sl?x3C;r|^t@<3aeGw0? zvDEn&!Sa*T@qbJF{V(R6{HpXX!1^EXrWSvfXQvQr$HdHGMu_)_bbTTT@1= zupRf~PP@oU3AS>=*6&rZpgl51COX)cN>R z*t50Q6b)h=W4c=HVg^o7wP+4`yzm1Mp5pY=ejg)Vj)|E=jN;{a);epqa}-uCI0_#0 zFOI)ywUlX_ig~tDK+9RN;MlcRbVvDOgkApiHeTI1UpeR~fink`0rSzWP%Jp#)Uj>t z?%MnUj^g+$@wVZ#i^~Zyaa{4G1i9zPQ(yS+IK(K*v{d1t52Atmc1j<8__!(yr@Bgf__FzgCORUXPtqRqm&d z&N&uLT9S{n0>D{*?ea;}Z@TwFidmDaV@XqR~@K|EY}%GJJ$2ImUTgL;!``8d|m z%$55L7Y(CmXK4fPM_(Z4zoQ{V!y@|lLulOu|7VlSMEWtaiYBL}sy)aR-{(O0*>F>z z*y8oS!vE>X-jvb0Ttq*wXqZADO#aUUij6OU|EuWBHDT+K|Mp1b|CZFhD+)m+UOhd; z7Wyczc3m`RS((R(&}7zQ zzYYH1LTh^uE!N=w?Y|TM?}h)gNehPH|LwH8AH^in7S^W5^(agJPlUpv_2$$MTx>3x)7 zi#&V+qnwBrn8bB8^pVyckf{T%fHv~9hg8Yi*uUS9!zwP8V;eS}h0k4#HwA8St;a|n zH^;}mR8XThbkS?HJWI4Rdr#q06c7YeDme##qwMgr4F1}Cu=g3y%)@(gi(e(cT!QY! zAT+g**{iXisvnc*C^46x{4Df(LPfb!F+4I&YwuE+g+(aka?sd&eGmP!Jf9a0_L%j+ zvJV?QS-sS9Jbh|kz&^I|B974JkmQ&}3VWZ%j6S@-LhZA>gz$m$X|Z6bVrBnIjOC3z z+<-~^Eki6U)!1Th9PjmVG+m^LxTdy;W9+Em_TC~Fy_KX!UpQP84yAK z+c)7oFO7XB&f;NQq4Y}H>1Cq~6b-Syfs_#E&=UU-dv5}#XH_12KlfxZGnr(PNivhn zWSy*&ecu-nk^o^RVP8Wa0fHd}0t$*apa^wAEGkL`7evsqh)WgRweGdHSSwa*YhSlo zyV&}+-`nNu_y3>kx#xLidFFYB`hDN~`@KCg_j7M&xwdoN=UnGH=a{=?%Po7pUPqr< z3xFkwzqSD36q?{+$gUQWfJxYb-}ZXF)2lz|PLdjfp1r1W983#<5LvpCA8^PKp9-6h z%cJlB*2BBY*KL^geUWrPz2~YY=xOMaxC3W2P6d>u*_}Ty?Bn?t8C( z2~31l{<_Ytbknm(I*;Iqkc58Gn@Sq`%oy4T%&m6#^sAC8N|D}9QAhPT5Kld)Lblal z!Xw05RK!V-#`sc&MM3Tw#8s=R9-)D&R)@F>&#T(&hpXv3GGm_la@rTp^`8*y5fHk@ zc=~qZW1&|6CxG=8li{E_uS4~esH+)Az?h2cH# zswH~3>FepdQvKjU|Ap^*cxy{@ZCuVNtxLb!t76SrZ9ZyIYrbA-zj^&8~xG&Kq^_G(GFw2T`5im9(44Ss%SxgTB?uxU1iV|E%8F`hMy~D^1%I z9Lk;43H@jPqm6e;+(fQQ`cL@s73ze=eHiu56>3*Lk39pebF~J2Cfi7>{?iiberB#k z9Qx0z(0}ger?q1OvBJOCIkxH^@vtVB>p$}t1vKFc?;eG&dF{G9KCQifHJ%*AvXhcy zFFb3d`p-S(JoIx{8ui@Kf+WS=%P`tZ`utc|#uLLdEkH0C`&MYaSUFz%r8|Xp^6QKP zuWJqJKX)_;{pVhpdN1jJmFvGrz!GyIv=O%Ax1-HcZ~s=HRW|gt4*e%D-2=@%pVXMz zG#k^s`#eqMPt3IS)Ee|V%=Mq^=DF*c);i}AcXF?9x1NRiV~758hc@+}t6!*#)H;)( zNUX}PM{4N5X>h@v{`4aiUg;k*K9t>BgKPEAq%19;t~%{_s(#{@-^soEz^VWArw;um zf6MisbJeYx<@(PV(4Alz)XMeWOiD0j2f5W68nElk0*cUo?!z^MCtYyDoh?iHuY*`) zc`_SJX7wO_3H>*lC$os%2t4Y)`H6PwoXLqNwL!QD9L04ZIq1#po~7;xss3}- zeD{@fCxyvSO&ODRO{7qU^yW8Z8>!@>^IY7IvYwn=;c_A8T>ni6O8w>3fAh(q)*wXP zl&}by(v#3tGABWacFLI!ta_TO|MbdtwRHETYyryo;HCbX1C16Cqmh{EKlcF`&9i05 zqnd6xb;25DP19$2S$bN#{#%TNI@f;-fX?c2Up7>@qyBE>Sw)pJP>xmM*0EP3Og#2lcTM_H~q z?>?R@sW+kj^ylj$uKI5l{t2%B)k6HG{4L;q9q;rf&Gp|pp0(f$G?lUz0r7D3pYsZo zh;A%%?p~?>+niwTQ_C6cr)Or`foKn zX~o{UjC|MgyA=L7qoCHX8g6bQmy-TlM%k-?c_Q$t|CWSP%oxzSJ6;X z7l5B@RrsWlYuDjjMQZh*UhF|2y6H(Mig@Ww+qbGf39`31)Aw6 z-T=ot@UU6MZ?6B`r*|Z&8sL?FXRfPi+|^KPGZ35z7V5tZK)Dzn9KGy9|D8w)zj^() z0VrlMHZcJo^j*MpD)26Ymg+ip)XeqY=}=4G{02rL)PHAiKLglWxQh1QCStFzmA!Zl zt%W8l8Iw@|>7m_O*bcWt|G7?=KBr5daIXKBBW-8!ME!R%DHjrd2T(MSx&e=%laUSe z-$wFWfZx$p{?I83jMc%vwJIUA;wND;@iP5*MFzrA?DL9wStFi9E4{l z0!ag&Sk2HT^xtNnS(}d28SObA&2TbM)-#$D`fms2?4^_wc<25BClK2-q5oWcV-2~f z|1JR5&B()r;Cm{uPvCc3&G21-PEh~t;@rR}jQZ~y#uHA0BNr$AhldVyQvV&Itdjn_ zfRP{d--ST7jnSJE$l)M=3-IYWLO$n_!ydS^jbGO)IRP4y!SwiSaA- z-?h9wfjCEM1CCg^{<{RqPeB4FgW(m7pOy6A^~B1c#$}YXoSM)^8H<2%G_+FxSqtX# zd^xsQ}nd`q>phK-8^xx}|V14p0hR-v=vI`$n^`Cy%FM|%D z|6X3WoOjdkkvo;~s71)rg}m#;$M_B;xC;qY|6PC=S`S`j3#sLM;LgFK{<{(BwEcH4 z82sk--#zHR8-QQ}{+@3s>c88e z_7eMbc;gOF|GgXvJV_2cjBgzQitYGE9)f?j1J6+;TR+CofBMVcP0e(N(Zfmq{T6h3 zJFuw#-pO$`{)VCd-b|hg@Os?Jz6SSFSKf;^_Z`4@hnG^Hp91xF(0|V&i_e2`6BxXo84v2e2UGj+zx7|V|NdM56_Dls zz4f2t2>GAwfcUd|WvPz&8&~CLW7QTML($S^e9s1-#C4qW>+~|k&Ebf2=20m)qLKfZ zPd@VMwW%BzkFp(yux#&R1kmgJ;IhUL(3_iM7zUwqbi*=BIT)`* zAFZn~#vP--j^+iPmXZH?ZTVs`c+l?Ud&jF{Y)!}=zcLS>1l;ECQ?YUsE~pk`mgZ0? z9?poMu^l&XL`%5DM@+(c>-d4R42-l~+5W8zf6&zOg+~lx&*+c}bFwWJ ze%S%5ql?Fq4iyfQeNDdI%uVpSlhAVZSq5T5FgVI9zs4H#SHljUu{RI98t^V)7={* z&&b_X7o?3ND&|lbe)$;VWkPNb+R>F5Pl(ZM<=q&L=*6f-jEZVK(Gst{v2y*=_9wos zOyLR@;iv7WXRJ%4bzNvf{>4s?N;~In$GzOB6qFa=J8t2~p!0uXy$Z*&V(d)bhWtyN zSSiENQn3x0s@-2)i>9_HThp$2;dq22Y0AGg6-Pals*?OWf~QaW;K7yqmHHTSc0F6= z-(9U7193Fc6=fZZlOm3lC@=1A;Yg8V4whKC{^s&O5je+^m!rq-VC)JpqiBD}$~vxR z<5)`2ESG=x!f54fTWNAMQu&{h$`-f5L&(45qV93!Sc~5B%D+2~O(Q=&)}0|9%1o zGN1nUXnIM`Ehv|NM@qX%`X?1CEZUZwnNWoV+`;yO*P4YQE)+{1SUc(}4k z=>OT^)6CP5|9PaS6lSDUU8KzAUpS{zqH9zvg}dYF@46z(VzO{eBS$}`)8lHQOzAYI zs{Aj;)-xAaR)Fs+Qn}Z1Mv2;w8^A^RUq@+LW#`kE4EbN21S8B)`~C*!@{u7iSvzDE~_+ zeG_-bb9BLjj>2{@QvS6kpI8a}L7wOGzX^+6$p32WhRXlOqWrHelmBf={wvSNXobol z|7XC@x%B?m0oD0DbId~dcZHSnC@JLsI4Cm`*yT+(mIH0ZjxS~b2`k|wa?0g@J-pq^v5E3`Qc?pDIA4G8u(v4x7jxc-UFk&NbQK^ix-+q= zIM#6xJKG#=w`;&HVhjRVmZ~^_5Bfo!xN}7LHv0_w~yEZn$`)DF2sX zsW}-d-3C%A7yFa^Z?BX+G7$2=7fCxU$^T19<0!$=MB^Pv{x6{HC7D|EI#e(ZF+zl($2dli=7!>{B8Cw;``bll<>3%Kwc?{$GZzXai7OgNJia{d3NB>%6inEf@Rxfr^PMgm`(C#8QvScu zEC1hM??&bSo51%=ut#GKP35ozE}R=4G;b$$^Q>2&K7ZBA4?CeHTArS+LZq#&a-X(5SFJcgZ9hgREH`Xl_I#^{uzqQw(H}kNAM0)F zQ(Qf0*U;Xe|76&&>=oKa^hx!gl-okEG zzA(Rkv_bCYB>vlT)r+v1bmO3){I^Y5Jv7sc*OPAvZE^jtTe*w+zkv2__0R>S8flZw zhTe0@qZ_z~%m3x1U7z?rlblwkUQQ=HtJ?X$FiG1=TAjgv&l`ZLdgxC4UzqFz?&Y2H zzZ?Fqsh*rRqkfmWp!&8V|Bt6VHkWqVPWlS9hSku2DLssdOr|<3}+i&J?pTTc(9(>}T?PAAq%_Yi+7?vJyZ9hk!!;!o^*phYx)^>fg?eqRp9>cS_ z>NoCTOSqKYHhJ`?V%}|xsFmK^>h^nUJ52bTkysADc}5${G0>b=rS!J8oP%Tw))ky$ zOs)ihqjk1$9YfTP?Kr6I(>w?B6n}Gx8Dx$p=5K{u{I$YsakFnT82*mWIW{&p{*GKa zc3`W-@wxK+1AoVlobxl5wu^IzO6BYC>pt|ZGbOBgbd{%fw&4_Fn9f~R`s3e8iX4C2 zmXpE9*+Y2=j;mR+_&ZMI%&PMIN04F)Es62Gn^VMpVsC0PO0C3l{GAPx=k6X2_GRW4 z@ptX?X7VY$cLjNO5Glt$U+v!9-Q76wUk?6LN$)I|Quw9fq(2c z(T-Kw86vi8@*Ko}Ef%#gv;n5@W-FS%JpUYj?a_1iF1v>N`rgz+*v3&A|6Sm_o^ML< ze{X`e9RD+l_@4+Db`a|%XmMIu{(=8yzVFL{?M&J!eevH-jz^04pTPTlSQ5)?U?-lR zqxr6!g!JY3AMJzx9&BYdQf7|-Q7p_kb(H^o(B)cabP4z$!47>rcGJ@P!2dFGyplut zKU|i30n6?cd=noBvzL&U_}|MHuay2N@ZV4Q?*|H3j6R9$C(7Qx39I)+zOWwx|3?cS z$Hw@YKK$8@zv>Y@lJ&d(7~Y@#@qaV;zq$|pzk}_$od1FU9~ANbH1@=AmX-hiH~u-L zJjZqZga%O&(Z3@<&f$K znn!i|JAb^LZ_6kWN~K>R z*DH`K9pq6h=#8Tfk#Zv>!GHZ1T2o%t_~&kO&QX*9Q^7#~Plg)uUrJO>spyguKQrPr&DeGpI_v^WlnjK{9gpdizvA}@qb>rs*V4) zxaRWxROXgI$(c}bF}N%Q`w`?>Ex7m2RN7SXe--?n&UZZcKc^=C>y5G`@qaGo;C~k_ zK0PvK!q;m2n}q+uI&5kqXuV7Y0{2A^{x1fS>iqA9;*Ridg?n3}g)QM}HYFllm|JPoFws_EB~!g+JYfa0A{;uyzQ6aU|dEZ#->q4{?&^N*ea+mHA1|6SDouO$9IRs;VZ zqsG0T`u`u;!{q;8VV8R+{QpZZ`*(O)E&LzD|Bqyap1X^@_yeetiv}AI^;|aul^!PD zqa5EM?RPoiQ2{U(9i+SQd{4hK!e~r!aZe-1!R!zAt<7 zRige5<-U{iH#q+R$Gf=xLyq@w{Vk67a{b2~@8kM;&VR!37}t+;{vhWUIL_yIDR5zQ z?NKp&oa4t_Us`it+bw#sHl1dL`GyGcPtXiMW)}b0yEr z)3b-q?ucip>{k%~hde8m({nD@9v8%s$|b*)_IA=yzWEh;I9H`H@%~>4sZ|aGJa^)IW_HbL$F+{PiQXsl ze4Mi0M46xF_#D??;QTrcarkY{!gfE;p8>WHbAYe!(({d6Z{r=bNi>j7Z{wXZF5RTr zEu5|I&vU$tYvT0m<$9PQaU0acj{tIDmyKv>Y94wNx95+5;qx4SO43hrUc>SG9LTsP zsh$tic0Dw>0s}N7M%34j1g5gcJs$<;PjUPfc;Cl?lqMQNyF@o=Bdz*8-(8l0mxwh1 zQO*W*2z$QC`|ps)CpmvHa7j45nQL(y>}+$rJk-_I*EcjYHjWsWf8qCl?KxnTuW#f! z=XsH*!d+l|KA|a;HWT@~h%KbJ6d@Fpeh|fcVoO6DPukVZZ z1GA>^RQgClLqlD)@}DLC8#ur*$vSeJ>PGRtOqSsgm9D;DiN^m7&y+Rc@=ylz>k=>O z>gyUB>-(pFl5(G-{10({hV!dAA0Yi}xPC3ymvQ~C9M@9De{%dY*H3VMiu2Q)w{hOi zc?V}{a}P&1Y2V0sbuqoqmU8WT-kE>?K7FS@$8+=la`C-!JxFhP#t{a~Pw<%ja~#AU zkp6no5I=w48~+CKyOBd!iuedm!iTbiC*?1EClZIIaVq}=&ZiX*p4A$VLG=h3r>dKj z3RRfTMjeJDgVH%7{*y7%xPt_6?D-1MzsC9N9Db7*bID@jy?NyC%j4TtGCq0s(7d(n)N?Bb>HFOKtoT0Vm*3~*36uE`lD-^1 z;Srxy2KnWA<@ofbFM~(;5{#BldFg23**K1&LgEK}spHSOl+?UD;Tv8*0%p_`>guhz zb#=`0=f+6DE$IFtLsQLdHK_94t(yKC3(a9XS4j zV;1+eQ12|1+pWHch*3b!he$M;9CGQC&_$SW4=3X5-6*&Hd z>;J{IZSXD*^jp%4=#11hrajU#m&0%1eY~5`^(d~#a;R^SxAYyNEtl@qPvC+pOaYgU z(5D|Jj`)6s<6fS9jk7xBRUBXE{#%@_qkqcrJ?@|4{8G-eCv9gHKF3*o`$f*yagNmH z{0q(><@gcL$O~8cLeF1u{{Jk1v!QtEJ?Bq+Uf(p@M(M=1j$*TX?!1(y{O66p?RVgJ zIX}Sp9h}8m+}_C{Uhn6uo|3-jbB3l#k8+K9#U<^6o_BIq2lyNw^jyuk_E4W1*2Y)Y z6k)dx`Hd|Z`*MVNM(7!bO#B@e|G@RHIB4e=CiAR=!*AW|Irx61cCp{>Hr@;0l{}~2 z;5R(ASJ7dqZ?>Oz=Y{65cqz@a=m!$CVxI;FPS1DvIm>BL!DUB&U63Pm*iDvoSG z2aIW%G-a^7ALrry!0;B%Z{tvY!70JJo9hp7t!@VQoPP;_-eFFR@4S4ygX1;a-^KZM z&ft}3r0j!N&oa&{I9^<+BN<KLPjfuS0q&^{ zu6$n3^|v|xi0kJ$OONUy<1091NIK&_qC85Tk8sXuww-(Q2E*|&v%?;}8bLj1;);%{#qY7Cei#_%}Ht2T9ja4-I`=vV#yUqQx)Ysh)RpDXqXO z(QPi*MY<*0ZRhzRp2;7c_joT&IVYQj_lr0#=O9?VN9xj+Xb>;^{o2+~xI;UPvWcz< z4q;fpGifSZ#e3_)`nxde8HE z(qDSUhHu;v!)LUh$0fGBn;RZ;)`P%Q0DfeKUodzNx7N0LD&e z@0{K>dq9&3xgIm7wY9x{(xl0@ejBppX4~fD$4{8h);4V>-?=fZT0_-nZJNWPH zG_wS5bKS^>`j(b1%&ZHSM;VoWQwmA1C6_-x4I`Qxvic?}%E-nsBl&3_Y5$_Jd34Lj zQ6tARw~TH?6i1JpFsajq%Fy0OI`OUo#*nA|aC>ReTZfIx%B#>P=ZYN2&HAV+950`a2TGiEfdfGX}pw8kcS zL!%+p%C&`+s|&z#^5Me=uik&SYj4-Q1I>}ovSrH;A2@pDzN-%&*>}~U!v~Kozv9SQ zH(r0`SywJUa^q>c&f2*zzu&jxq*ePans;E|-g(FN9e>^htCn5KTAVxgA31XUO~ENJ$P(MSMTG)hi~LTSKlWhM&ho8U9V^^?7!mr8*e&v z^(r{6EI^Xq6 zS3!V>$>Xt8@m+Au0vZ_EV*{;ip__% z%sa68(Bj2Qu3fx!RT8d39yguK2uiURAG#D!kM1i0NYOm(rDL8}!6W9r>y*QNSHAS7 zgGUc-*vHSxbqmU}?7H~cOBbfZMLv|JUs*YQsrVt%18x}z`wtvARxH0%DWd4SOwYB$ zy?A8~d0BdET5VvLk{8O-TRw1?0Tyx91H4<*!ngv0)6}Rl#U?$~Yhe(io@nYV*vQkxDl~>h1`ofHAq&sz}YjIam zX37Bwx>e+NF9lYV&@c2$Uq(pvtBiZ0KZYUj*e6{Ev1tX6?fTtDN(npQ-OJ9b=Q0dE9 zT2_9UKvhiKM<$1ae*g`mR^~EUR&Fgo50J&O^tJLX31L~f6xO*0e#o~QhJ3rR_*V8*YBsIN z;|vbm%0BI?GFro3jJ19q2H=1 z^jlSheye-wr;KR{>6y*(0ghksfN`k8aU2(NTw@QoU(g1sP5w_KzGGIoiDzOqazYcM ztJuYe6b7nYTCy zXkg^rpcIDzt=wF>4^5hU&L#?ZLwQopuCfwpyb9>_N?lq_Fk-M${RD@(xZ6!uGhxSzM$sgnT%aN*wB76M0VFOO%4e>bt#U6-F6bmUf)IG^cy1#H` z8net}40)#XWEt(5hiw`A4y83<(-f9G08_Gi@8PZE1db8h$?;|m?c&(VlYi2WIWx{M z>|lM-T83~X`?li(;(9ap_i#A2P!@WukJzD;&EIi>WC<;c(D#yM4STjGtLaW`%O_$- zJsDb^);Chwoz~Ntg<0537co+yJyi{$ZPZ0w`vrt_$j~qPfZJD92}5RH!^;5$4)Z}3 z@T$HJX;9T9Cm()e-k;u+4j5pmXHJX*2QlkfE2VKF{>XH#=sR!6xvpdRjr|uRe$2sh z%^+uFmEy-9VD5Efdo;Kj4*IXF+zl?{yVEHcY= zCg;eMXZ7@X47pGqTn(X?V2Q4F?_5u1B~}@8Ed=LbRu8Vm<~s7OP9Ws2H1CSn&OuZT zs)v|)=o~)hytz_>GcT2TVXGG8SYQ6jk9bx~dNFr}1yfmLy!T07537~$dJ^L898znS zvrwH6>wZf8c`{gDu5j-9@+-_3o4UHQRP zB%F2U-e4oR8dpOGZAJdOPIvI%*_Xlp$u*>RAIo~Mbv<(Tdv!JM;qgCei?o-2QeJAx z!^RrQ&m~{}I}>!mF$oO?iC;>)g!g@Us*Sm^PtUZA_cor zU-cmWyWp4m*&5$HpF5y^40=~jzkn3M|LO35DJg^ht{6AHdh+zeEs)Z6uggR2{9m8= zzn2xEwlIVA?7~j?ac-IgySY5W3fEV#W=1nSJU#LMoHG7zD%8$@*H%7?8_Cu1|HdN! zPtt{?YH;65_kVVm>S?5$j{LeZzpK&I#{cO^>v)>;b%oh*E$4p+dDO!HRm{EXqI;3^ z|9IAg+n)HptT1peeIPoQ(dsy)$nMl|3AbX@8`4RQKEB|lBMe%jR;{OZq|8eTyeaQ(px}x&`zN)1cC~sS~BJ0Zb7Ea85 zi6gT0e@qtqw?$qpbQVqobL*e0jtBjBu%f&5uU7g$&D`C);Y85?t*k$P47b_Z=>L3S zQP#z**Ao4ITv(AEV<*Pi=--JE;URXod@Jz(fVJu#VyDS30RLOLeykeuy#GR>B@6h! z&5Um)`eJU&^y`oborN{4M9jguJh0dRt%Kd*uD8 zcoJ>(co)}}6=`k%MyowfDTI+n;1|C+9U|{MeGYei_IYi=R(}p@louF8U%)j)O1&Ug z%=Rzh`zCsBk%K*UdmK5;QNFRFXA%8z%P?J(lIL#9piym5mtvWhdD?fh4`4o}RfI}y zSlh$)=q%ZI_E92*Z^Sbo@=bnaODL=oQHD^)mAzKsHJ!aiOEp*H4?p;wE>9UfpWvnM z`iJ0%tNslPQa^BrSl)@7L5y7;$hEYUwFr4G#>!(BU)6B3zu{_0?yP36_93LGD=fPr zl)RD7v3p!l)SijbtXrWWcorP;jXAoSV612;HnDG8tZXEA?4L_<%abFq8hNdK{&KYB zo~eVcVq%V-Em!!xwl%GV$+xc7WS`%sV-f`Rb%jct#n)8~T_@2Mh+1#(DO1ueR$nTIt(I%4?3&`zcO++57q@KJ6m->dSK0QRPmEQcT6p%a#mL^f?L;xN zCvL59U2ySm-DFqE)()Y(yR(l}YT~KZG3&chD@Bw7`~N;4eo!iIMq zmDtdNK8-jL%Qty?E(t#OH;)$@##nJ>YOnk=ULKc=7ZIZNhBi~`g~eymGkVn4y{H*p z$%m*VUK_j%TUb01I_1w)QeDhLON9=Lyn}9*>y^)j8|0f1M4b#+up zUaBolxmCu)24`(^RWD;J$HEX03#~XxKPeHb(#MsxM67dtq~u$#tk+?)vZjcWwjXmf z{_sP8{jUwmdZl)3up6Sf3M{*>yRW4ZoU+vWP-^-pvCKbhYrK6lO=W z)HrfT4I0`s-l*Hvuxd%a-|orkS%}qb!WnH3TP-mz7W=k_4ybL!L5TC<`h&5bNwgH? zrZiECTmjKtTII3(0$RUv{cpW@*UPZjT4P&~bnEAMu#^hw8>J-br~8~*$HhZkp}o=i z`(M@n?g@|~=ehpxAm1s;dZGTG3_ONLo`wFOKuu6fDbw1h+kwmaEM-RlVLQ?-e05wY z`>v~}c5pXU^}joWhW>Bmtkr*FD!Y!_WQrFPoVZawRxqACOZwj(VM}2GmyT1iKn>7F zupZ|j^#3GoOZvaP_;Mr=x-;t(Af8Sc6Zq3&Yf%47o8g9X{of5`7ej;4|6QEtU{jn! z2@U+_`hOPuT0kuKGFAW2qT~+Zj!ax!z^~FY1Bg0+aSrd@!9vSQC+XDxb9g=%>RVpu zf4SSl^V-Jz%5ijG3-`FKC-1)cznf>}`hPxfcTw(2WMKxsOBwYYgT@Q}KZUDS-kM9U z|K0VY9ozm$Mi<g%CS0p=zsfKwqRYC)pxFJYb>>yEfK%Jj+7|#Ih>EH-!FI|F|<#=zq&` zKVfyB`w#mCR?kiZ64yWv{XZE@T>DjR(!hJ)g#LH0qrUpzx~iTMPFoob+`Ipgnn6va zb~3zJ{qJa#-+%X4Zstn;Ka;!J$m?vltNxz>gi5=stGbu+eBw-`Zn|bDlP7uWv*uJ= zr;ytHq1FE#NL@Yetg~u@spP1wSp7eXH_DKs7mX?3gvKy_){=XMyw9fW+2oPy|8-!a z{+|!L1>|=fB`oCG1SEMOhx&ghDcY$WCH=pIH*1l3_5VuJhyGs)lu~#u*p=&l*T$C$ z(f(hbQVaw1V$`{eIu-hiHMnwU0c{{p*8u6#VoV*H)Yv=I{c+GVLVx`~7ii}K^W5V5 zT&phx+iprb4h&2B-_o6`+YOC$RY(CeQ_e( zZQ}WVMgLy{&&%8Y7jqZ-e-l(c1x~B~FM!Lr{=dAi9qBq1-Z^5e{=WbSL;r8%nfsWY zT(}I(<}-;|{eOU1m-46nzlh@!BzF(m^Z+AA9jrTQ{T^QEWW>c4f4dmNT19DBLxqJn z0jmFxCH;R=AN_wObUXsZZiaH_1H&%3)5s`D15ecdXBA#Li2mQlo1N(YGm)Mv7#+JB z_q)TSIv&0q;P1bp|J5ntZ4bgd$?Eux_P_ey9W&gU!TsU2blJ;n1>?~FzE!ik>$$xU z_f^+}qNM-*-q{;6)(qY_s_fS;+7oIyb%y0fUc;llZiyZIP3D~Ie|MqiLShzjsQH{1v?m;hYiQ4;O{#XM2}+iP=;;~CW8R^r=6 za;!J>e+O@d8>0Q6>;L1BA@%=qN;`>MPeDFT0iIQ8q!~!lE}-AV^EPVv8N`{$=;3lC zXlH6`wDN3K(*HYv-x|FhxVJ+A_b{J`M(9MV?IcI{{;EUU%;JsOt)13{df4{h@WNW^ zT*lrNq5robzmB7wg^Y*(zs$uMkkoa+k?a5cNb@O3@>1mgbYwa7{|2P_0CK$+2|pfL zUkRq_|C71eLY&b5d(xL{7rD1W5%vG6NRvIa7pMPs!+kaItIN<<|L?A#|1Tom&J_2x zKoH?dPL6pSZ2uny+PP5saC(xKXh>H#KedPFF#)FR{ zGkN=eE&AyO(yc?2J_f(%LZ7oKZyh>R{eL-sk8un)l-mE*^#8rUe^1i?x5N2&AU$72 zrqutBfZv@g4$@lq9PnQY+^=M@iU!7DA7@s3(m)#)qo6?k<7SpSw$_HQBo zpJK6`SK*m@d(!_O04MeT(~JT?0n~3!?f=IM-=z+Gl6|DVf}g_`c%+8@|2FmHqu_J^ z-v`_OuVhcS;fI0xe;ay12XosbCH=peXG^GsE7293c{7sw>|1??rXy>MfMGJVSKYJ( zt?r(Q<5K@h{ckLF^*U;sycxxLBl0zqoHp<-^naUI_Cv1!FT^Wm z4SN49O23fv9!e|e|21%>lV_JE{eK3~Zbj}-BgJa;&JOC!$w{lI|2M(83Dk>R|L;Z5 zUWDxJOZxwmUj4rt%{SaI9@xetZ8;S!SuvYd z|94UQ9;OE0j1JvF3*-%D`u{fS#+59Ab*NYW>+cZy|CN9o`u{2n5$oBuI(^G#w3dHv%KXTejS+4*8i8s0a{~fOX9c;_>|Dz@)WSKiOwP&{f zpM-nwCGSEi-Ki8GXW6{rxBok`2`r~}LUt7ksHy+=WhMRpOQ`gGQUCuZ{xzZh7iOdI zxY?dPPwo7DmR3^#|C$}+KZeZw75ej^kn73W-c0@fMQY|BrxwN9!o2JTJX>=8|0i%b z^#7RbQ%u5X&04d^_)Ulo<3|lXIek&jL$~jvKGwnE!Ss(lO@~u!;Aql6Cm_vz_0LVT zsMjKIx1fJcO8V!_A@$F#U@#M1ddqJ}|GbO(a}|1iKC(H1?~3~8h6?)UE%?3Nikx4H zOuq(wqW<}8(m(en{quC;14;iJ;=BGJdxhS}H%9$)3pKx_e-3dU`sWa}|M3^0f1Y81 z$0v|H?GG2j)93k$eUdNJh%EHak6EPK_Gfo?1PNG^O)jj-)ISTdhYKI!FWR5~gBFwe z=eR7_KjX5{KOaU(F9h zHY>X*E6LA>?4H7e%2R|JIl$ev?w;$vyP zagx!RP1D~|J9juzt>MGr5tz|?)qOsVy#e{jssKgWgr zi}6kK(BHxFudrxq6YyQk0Ma6DT=UZpU@UNG^=;{&J$H+I%!re~aL2NUK~h ztz`tyBd2`yR?7KgF!_)1FvkxZKb8ObhRAJmDwltKMU3U2&-E!7%@Oi142~=G5BkV! zlX7;UGUD0M37;yno()QwBdGyT$f0~Kg@JkdPRa4NJ(bTAeB>SSuT|GsGg8`-4y~&( zvaS3(I_U_mV-oITru;kVIWRb`TatgRYo-eMw^Zd?`PY{32?+|`oy~AZn-gzZ0^!2Mm+}l7f4}qiV=UY6XIO{ zV;nt~f9aIVe{k6vE6*Z^o(BDcIjK3qKgznO#D~|EX&rsH?uQ06S8Hm>zuLkSA^%!r z2j=ficS?_tc`Y=KkjqzPOMRmpil<{-F5>Q;<21ryTF1?NGMM~3nr$v}-+lI+jXH(D z2A(^5-%46JY}p+tRy(;W|N6Xia=4S=gj9w;F#SVFMacg&+GWcBbaDv!cN{xLC!8k~ z@~;f$W6mM}A(dl@F)%3qj(aTz!x^+}wGcP)#Qlg_Xo08tvFI!BSdX)D9ih_V-T|FD zXopQ92kpZ%D#*V(&XweUF?}P)XqA6Qhm0k^k!SW(F`0Vu*el5#ngc)9#*Y40DLmFf7O(y4}1LdS94PF!UuPJD!dI$p@caGtKV1u&<$_gxl-BeCa!J!spRXpsPeB?Q2yoi7^vY`o_Ef= z8$rx@#Ggh?<=+w2{=pG!Jtmsy^LKFAqh7~f1J5U76>5cRUHoZFUz1`f|1-&d8NCkW zU;luRf5*-HhjHW;HF#xVJFqDK#~0;)8NHHR{+E%*D(;pOza;uN2 zm(#P%=xJ$fo(`PK|M8^R%hO%-HBUsoc5-(zcd`?Hn{w+q1Ssc zx#aDi#f(>-Rh0kppmTZMIYaJr z=zKiKQDPnj&XE6eu$XRv_h<9eCnK>GssEP~SNT5|`i`Y%+D!QaC#Wsnj{3@YS;jr@GM*jNIsHglkD_?zssoJQe8FHfh&q{JxlK&}` zGz+Um6D2PoPRRdUVuk$A=DnUIA^*x^-_XtIiSoal{?nPrr?U`uA|oOH3!t2y7OS~m z0N+FYR}*&z(zH0q|CYq*g-QMw_RXBTJ;?b6_|`;k^DOe;KrTo4Yru}H{O=~03;4Sl zI1dBGA-J>+>YPV!conJ7z@}4=*A628=VLhz`M;Iamr!C0Rx$Pe9%_)|7*{5k zUP_Pev-IJQ(uY2b4dCTi)E}h3e=T;scd_r{cafS8lkfL| z{B@LhJh;6L``jI1@cURUUl>IG)o6|Icngxg5lPtqkLLpaDB^BR^1qV07xJ&i(ne%S z`QHXjM?gvES}Olt{4GxMl~~jJqx|ne{#T+Ul>a?Q#W*B1^#5^4#zvl9K)LR8AM$@9 z5Uj!y)=pV_d4GPA|IL&;xcu+OZnd2eiZj9VUhKyA7hYSG|68EMQfw=)MhX{Tr#b>$ z$H?`KT-}LvQT_i0;JX`)n~~vLd*RM6_CVnca7Ow6T$2CykyiPCo?IVF^8ZyvJxu!p zp!gov)@_vfWo#0w3ZE~^|8u1OIDEP-&$jpcGi+Dy!17CbC)-n^ zXSw|U3M=k?@TfUc{@ysNes1cOpUac{T-HB(@=$*6WF+a6TwROx>$kD zxCi+;hQ0CqaC#M1uXeEdFeQGxC_nov$WO*%S=$Rsvoi~`vSrx)?q>n6k3rR^3mw_= zO!=9UKmTvrOyLcDvuWaFX-_;tX(HFf*^e! z=%vs1pwBO<-`20+!G^pX`I0^l!rl7|e~BLXT{n&C7dB?t0DwjMe3QAH&lL6o^CN5} z@`q^PhmjELS4Vb1)|Bne{s!o0WmjQw`^Un$*>?(OXE*ZxWm!GCWiyofMZetp-illt z(VvdruojfAP2=4FQuNKN_s%|$vFp;4{4VdUo0o5V9`B46Pf~&^Ke+`*JA$E}Bez+l z2Rsi*{k10(u;fo8PUTc&C>`{Ai_+rmlG+#qFQiC()u5HaBTvuSV;P5I7e^drywt z5Sgb}C0SDv#oGRu*EtQmk0;R+GFJYsTJFk4*cBpgWn3u?j+$@COISW~8<;TV{200f zbJI5HVH*2*%7!)vL(s-^P)|;an-r@h$hTbnwOeUjQvQ{YT>kAj%6CWFucKbLhLZeu06`~Z+83-I#?$@^`Ja*~ zZtCfjmCL`m=o#5cp346u-aAt$@3T}ZAuO{}U8+Q_l*`(dwP_i=SEiH$sbVbkUM<18 zD7B+*NgE|LX2)tz5Bb+prZrLtQ@U!G|1r>c6gY?cYkAO$>&zEz6J^)^%!*4Mi-^G)2?;4RV_iw*qoGd9R1LRK(+uHOocMa|17AWU!~qO%D*La zgHaby)dv4U(uDl$z1>EeHsoKs#B|y|tsL4D`^x`nXsT7KdKgdZT>0-NkC|XnF8>RF zQ=7>g`V#gf=l79+dp^}eXg59b9i@p80BJrF_%kSE&=#irt8uiI8Ebg*?^;#r1MNh) z{OkYUPR_0>ro_80kMi%V8-4zBeUw0`_@n&0W}sG2DN!!}+U1<{($3i#d)hW!2g%i^ zh9mzoC_^v*wLqu*uK-@xqMAs5G30+C5a{8&8VOrQ%XTbpYm=Xn{4WK<38@9IwPsq9 zN$0<)|L4N#kpEr4u`$X2_KGwqe=&ldQ7-?d1KlS2(6dkpu3UN0v-_| z|EJNfs}25K{!gHfdpfXPk>r03y}GgFn#=zgNN2Qv)?%qTk=|sj@_#yggdM%|zc0!E zh2&6A&*1=6IYQ5VUy}c0l)W2lCV=5tlv11gPXiLas>;7|;@3)_XTM(=SB9DCiC;K% zXA_)O{=+7gA`J1P{-2Iag#0fewPQGXDC_^c6!~Ak)eN34=g8&X_1&fqk!$Id@_z!{ zI)R)ESbsL75tbu0qu}rsu1|&ATRE5H|1|7DdQGh^WirIocq|mk|3y%AEj|BjlyeQV z?|{P-;ehggCOxb9#8dwFgX`7sXEEHbB`E*KoB}P%<^KS^#cpWxiX{JsDf1%w?geC3 z`M;7fx7U(A&^=8a>h-IU&xQ1^pGfk5FBX$=^ibC$LGSD*{}+Sn8F&WO65fn`PyPR7 zQU1Tq-BEJ<27aP@@K9^zxD&6GcfrwXh!^tzEqGm<{#X8=!>-Z|o>ENp6b~QZQkmO$vsgnF(nB;#SQo5P)Cs5x{fm)~6LVn`q@_zxf{!~1H?i@t^ z?@aQ42x;wrw+|rySJVi<@_%np{vSn_p2h-n4Zgwm;9I1>vhx2~IPx}ZN6P;nW0SZV z-qb4pAHah1BQX6ScC`$f%yV2nNKU^l{0DZOPq1a@15jQ0|3%^Nc()7d%GdCf8m|0* z2&n!8>)np*lI$Ce+iWAf}17zxx6SpXJCPw z$-6FWJt05Wg2}01qWm1Jk^ZBIc{xkd@)TC|3D`NWr{oK%gIBg^OUUW-E9i4}_8j)Ny26%hLMDBlFPxrT zkKg-+`2Ee!UX`sXT%1XtD>Ca>OIAz%VdpYxT$v{BN~!&VhP^MAYz!4ZNacz8A}^SSd8r9*cj>_2lfZ9RCj9xZ1Phye0e{F|<|Yscn$KP7p7yqSbqV;?;0{E@CX@Sk56F;S~^c*Xv;{SZW<9;cxHQ8F-GS zX3%v6SFST+2>k7DHUmZAKb5E5>8+#fYq)b{wGJ5Pkh?8?JuGIW7)yc8IdKKF=1#8W z)B0&lsmt--gkJ3+#`)lX2HNqIUi|l<)ei98760Sm#nt4r5en??<-hnJ>&5>f%HIP1 zTbM&+DBDn&$2%FuL1H^{GEZ0TL}N1k7?V^ApV=d z|2*(N3;a(^_@6_(3)B0Xi}>&6yZ(CcKf)N;nf>s;leUrg|2ALem(dd1%NO7!Mfrag zjeUS`a|f+J@&6XzpZCzV++7^2ssq>GP58f-@t_Qy`F2`Vk8+goUjj6)4C4%7@!t$} zR`=q+f+xZM6QSbDG-q`gZSLUz*_8PjzFez-|6yPk|CfOO%VA}2% zue@Poww}?d$-p}yo64xo|IIuC@xQMq|KCUc@8qlgZ;a9H$o6I3+57o6?IrH#QhL1# z4pZt5{0FX1@Sg!CZUf_-f5Lwi_f1ev_&)`1_cHQ#ETtFzxtZ|K&W^)Z`D=_&jm{P` z1Az_V3Ew3DUy}b9$p2@wd#1tVSKuq1=l?}&UwQt&O8K9W<@x8|iTJ*xEa5`=T>_)x zPiW*k7xjZ_^H93VpY%V+S4DlMy~*?*q2pu3p?`|L_hCOQ*~--}rdCI)H>(AEZGM6B zZ<<^8~&DO zY<!Bb@Om6NeehrVTC{0Qt#@hgzq*aKod4lL=J(UDyB=x7 z;r}>vq`qnPk%Ip%#WuiD80gVv`(iTsDEO~_x6L8{tJ{#Im@;VF$+4nnUxbHxEf#jy ziVXfsb!9$yVJijyfuTT8?{fazHfkZSSh-Fsq*l-B{I^XL{C6EB+a``ijE9DjA?ts28<6u;jOD!j(WKV89sHk+R<532+S@vDKIkgww}S7X z{GSgcyKCaV>pcYjwPbaXW-7mHIEKUjSO-r|+P)e~T2~~9+A$RU{PyaltLAczl{U^= z_T^t~{CE9>deY40XaH*0b(xyd&mo6u!Bt4KhGfvKov&vj+*_Uazm{CJ&JP{>^8Yy6 z7E8%tOXB}rS}fJV3@idC6KO}0|L0KZaRogs<-c!+4mtlfC;qR6|ND#l--1We2}395 ztv-3d|MO^P9i;U$o>u53@c$C%d2ZG8t`4QQ<}_kER%u^G{!iymO;jz|)*p}5XHab% zd~gPI&i`5T1*(OWlq3JwCjKv@oploQn@U@HJ#EUB)soZF&G~$O$WpM|8^-|A$h*hTnt1^-_IRa~E-I{#mat?^`R7Z2k1cO}-4C!qV=Xu}?c|92$6 ztD!;2`TqzWHu|Kkpxqhu|9$ZP$)OYT_A6LQg8zRA|NlJk|69xx4*q|$YWnqPnMtW# zx-{{BO)vj#L09Mhd9*i=FYwF{{GXQLnU?Lzs%5aAUO~|Ry5zNZQyKlwMy{%b^RUDP{qF#ayNdL`9;vR4{0spVzp8DewJ{fVLR*SA3*hrYq~Sm5uTJ>f}F9>bYg;_ukAZLNX$YY%JT z3*cz+VEEhLv8Rw*`^s~d{`y|n`qTz#uc~jbjbc05`C8)N9|Qg1U2ie)ch$$f!LNlq z9$VYuANQp=3sU<<{s;d3HK_RO6}%+%_2&$NzwMaCXi@Q>MLV#6DB-U?vVRLZR@b%l zCH@mD;6D@mXP|jU4){XP;(Jifch^}*bwD|*U-9d>*MEBoUtaO|zC4_R)}F*yYz6o` z7P_naCD*%(_+QS~@*wu6{`}v{H@qF4BL4Wx4#2+^=v@6z{@XtaD_p4%SLCrJ-(Be9 zZ{mRWt~t4iHiolC#Q&61(sVV8(Y$(KxP%-wfqz)RN|D4@d(IUJ|MLdm|3t$7o+AFQ z8-V{4;QwmIO>+EiDrKFnK1SJZEc^vlo;UMtf5!m)R}}G|4;Plgr-AsNO{+2RKZ`F) zfBf#|8*wN2--9LZI@*U1_A5W|{~rF>f&bU~y%+y~@5TS81Mt5jlm8nS={M(_P_Q>z^t9V|D9nT|f{w_~b$}vwJZ}PnRpCcFJ zmO?2Hul(x8*%lYUeDGe#aezB3W01XbxOhs-B^gWsyKBltbd zzg&JHqFhsIH_!qU`5Vu}U>swHCCRgKeHK?f5F=`qG(`zO3;T4bMSS7*8KKu?r9C81D>wptDqkHd=>5 z7v+ja%z{>yq^Oh@>;7Lk9`}Zzp4Q*swRy!Tml#V~SBKQj=p0C4*XAPh%AIW);SCS$ z;HNo?mocQZ80b+f#4)lbzEVHhM^Za57)Za+1>#^np%IKFh93TgtO$*9#Mo#4g{(=3 z{P1b$frwYCJ*F|Y{9G!-=N|cQx-9-E`SD&kiQMFZaL6CuZV2ms0lIys))>CblQI;}mur(j{ z)X)>=7WP)_Pf)vD|M@gH8yt;%l#WXDvkhr)M4qTwlp4oFy|zvZwWF<$^9L1dVOtAb zx!O7$WB$?ak-pkvltXKNOA#9PmT*+U9D)a8;ab|(sG;oNpZ@#SVgF+6B=*)- zPn7FF=hK$-pX*+`ertI4m+QYVlqluJGS@>nXM>8o?hV$?T>nWAYw9@CsV`i+AlH9U zTctzHP?l4A;5vUj^q;G6$DDVi#TqOPedg$dG26LwRdDB`#JIL2;nC-*#9uAbef6LI z+oAv5$v5<0%n@+butAUN(0|?wZ{X8Xv%57SQ{bQLluNae{&UTTDPXO4@>JfsV~DFLjN_@2@9wM}+=u>~#B;x^ddK@Fd>!=A zaMjq7{&SUVrOMSK+)cf@{tJ&4b(b2%S`ml8@g-NHqeh0F3EiV?JHnD5*666Yp+9^s z?|f!$3oQ_NtHVO0hX%`~u$+v-Vfv`MCH*Idluh56n=zEC{OcQhH%Gq^>K&!nF&o<$ z_JXbN+9*Qb_-&7`U*r{aR=r>zmFbs{BG^|f>A%n!;p3v$X{_Ghy4tSA;8=gI|Exg) zi!^dnB31-(rh*#C@0$Fu9N|^+tXV?j-WS#n{c$SQkEy&-|LFy9EerkUObdPGV;vYZ zg8PQ(7w^m(tp~aOQ?eZS(DP?3aV8?6)~}cq;(o>M;USF5t2sz*R~Da$M7l$V@Jazg z{HDv|k8=)`9=-DQZi)7vHMBmZRS!6Rr1oReWqO&7(|f zdpq$BCH=QD-D`Ow5INXcAMxC)HxUN7aYk-UVM)e9@q&pD1txH4;9jBldz;$l5wte#g)1AE3!U1UhS?!wx~^Ih~IQs{Fw#kTz4qff0N;ZGULt~1-N6H`CPkKjJs5X z{?qnma0Za_?#>%+)C~3C+!V*LYW1J~a*m(P;;w^|gt;Nr7}ucD3Z}iz*<6N!@U5qA zb(6XkiEs~``P|J!%I09-D(Sza;JK8yuJ0kNt&}hmE6{A}%6uSP%v1N~UW&x2|Ma69 zMGm?CTRC z6XUkivD(!EzdnT9fN)8oajyS1l9M%iF8sFr=bderzWUG9S*no>$wmD)w<3Hq@V{CG zuI{*F&2x{3d0gv5U($c8iKYHK1B+JZzf(xHm7FtD%)smJRAO{9W5NBJ)qiWrLH&0& z&*m}0xBy7he`oUSR4C_uJ^xkxcN%#`JD{5WJDYfpN9X$QeC|v7?_8{<23OiI6t)AO zHL#@rb^vRo;Ho7jK(m)HT9@m;LrMP~BnS7MXyVOc=x_-mtUHSO?{ci98+ejo!Lo{iTXZG)^Q-Obwa|ag zo7G#l4cMk}v;nhomE4y`d$KD&S!-e^9c656il^^vv^PWl>4B>Lv$df9(;6T9bB!RT zUKHa*oE?`tM|Fp}VKJ4pk$yKG%OMDQQ81PW`u)oYumR z(0_}Na`m77EbFODCy_@zd8q%Kzq6h@cY#{W-3&&Iw}NS3{dYQeZlxxj3CGocyDIYc zdSdRw%CG*rnEH4bkf{GIMkj5D4yOS1F5apCPN6ipv5(l7B2VhSYe;cCkhJsUL?q7r zO-?WBzpIeR6XE;m$l7$qGS4H2^T^#5q^?0yuP47fPRn)SVCjECAGb=7n`tL!;)o+IyGpVK5<2n2&@Lq_A z>rS5bK;6)P*OKpJq&<-pS59Z1$_J3XhZ&i;6byE79))l49^g5dG(oO79#C;Pr z`*x^*E71BizO^EJw*OuObxQ5O+rZM=;cDeK@N3&S^q(ub7)tHG2e@-ZrO+|2@g`#~H!6g>$a|Ty6ed?gtNdL$6PR-T%OgSN(T8BQrmOcCW>k;{j%vox{6d z!vD~J&q0?b$p3QUg#P(hPo-`z?7J;scqcYy6z$tl-=k3i4ALI1q~FP>nQ zN`X0S->*nNzov_jn~_j_Ioz2I1RIn7b3cJLB&m@nCH=QK)oS-baCE8($yQHJBCah9 z*P>gB#tZ#7tEm5GL2-S4*22v>#B4z?yVuNSXs`bBd1$`)EvKZrwzNPc&-&lH$B_EZ zdbI?qolD-^fl>W;JdmsZPK9=^O}8EB)qmSk`)?g|a&3NGwB>8M`wEcGg9i#qxBem*Xg)ZQ`X$bxI z7sUG(K1b@mZzTQq05pFz>Aw#p{r58JiTdv$W`8NicP0JzO=$fNq~QhTQ9Z-Fuh4(r zVTPpo?|yhZiWREVe`<)!Ddh{SS#=7>%;YI`4eJU0MX&yQxFY?&jkMRX4$_yY6OS<_ z`YBTV06p>?A4B!u_Y3c4HeTqzuP6QYb-aGQgilYo{(CQQ_SJuXjgQt((0})#Zwjnd zv=5kH0Ph#@=W=G2`tPeybtKon7()Ne&rWAo0QKLGkdM%R-+{ZQFb7~+Hkr9>W3pWT zjbd)VKjB@Y{`*%X>Tltp`fq;r&&(bB5A@%K`1hZYMmE<1(~Rs{W{hRoD_PlT1=zkC z>X!81GS)!96?zP<|6Wf0y_R?4dnkZI285w^?1|01KsudRDUmL-sZdE_jS~$ZSZM4UUzo@;iIYk zz7@Ex#Cxg@+}}$raqqDkq2FO-`Sq#(zK&>sn@jT7SE_Tg1BZQ?sbQ zOS7oIpGft$9%(ooZN4=7X<=K|1$=ElPzk<&?d9*^C;t8w)P5HJzN-&^-$woYA^d%H z;_pw8!k^$<_)PKw_(9_DXA^(_Iq~;iYSkB^?T_%_noOPl5muoHc%Nb0$a4O6 zXWQ_k8(%mtyMuB6gW30>>$%WX{{9L4y#gw($o?_$cS-h9^7)6txa^edDCKsu=A8UJ zm{p=5{l>8&XvRoIS4aHn15#ROY9Ve9v*wxB&S zM&z`jYCm=?D5zCi4vu9DulDW{T#roGwWYNc6;S8nPhrp2UQ=rj;~3M`Y8Nwbf~vLV zkjD!@0O6^fe%kM2#LF=;bBIyAJkM%p?RJjB$^}QkgZ{PSZ(1#7+NNTjtrXC5R$FlF zS}VGvd@;f<|Arc`?w_w5bdr)OS9lTBn@-Eev5r=*+-JDf&_+8;8~6zN0y+O3 z4XHIOqmMs^)=lt#KDkV#A2YAk9qM= z>!+2T!dg{blI~i#jJ8;<;WBz4^8Z@;6fchdJ@Ef7THE_+u?GKN|6k(& zgYcg=X^kQH|9V>8k71X(C(Uku%P{$WHNAN2f6o684uk(+r?2}s{69ud>2~_qpNE^D z=C{_ck~Y5lzdzOg%jn^4Wfpnu{QqK+|6ijgCI3G*O#c6{@Z%!?zYq7`iOoy>uidS- zu&(fbHves@mwGPIe+kOvPa}rU@_tR8#&iD^rDu8Uh*8QVB^t($DQ%CLpMQDp!k$v8 zwEWtPBbHaWAF@xpGj;yV_jzu4>NrQPzONqa@#H-(q4YjVutgp|fl*Gx3rym=9QsIW z56IL3S3nzi+CwVkZS3D{$YB*1%drg`&%);}#+w4SxYlDNkDKFTUn;0kJ9N=&v^-0+ zG<#3sQxp&cRZ2Mrf1~X1vkd;)d$9Kz&&Fbj)N%H^Q3_xc|CXL&xaHP~a;1Is>a^knr?%klK7eF6K} z#)~*Yn?sUg7Afp~8Z-Lv{tC6v@)E)a&Zo5nOBE~oS7I!0?BNDX;%^yZVX4Lzd*gVo zm!s(-O~f^|Jse|44Y&6ex#+DVHHO3CTJaEaeQ{%6m>x!!AN_CNg!jBO_L(?~hjMM(%UKOs6GecspnM4wi--$gjkD;IO)+CU#hSu$X$cDYE{)EG;r1G z5Le-OReSw#HGM~B%u`=Z`@*^Y6Jk9ALf05i|1RN@L*Xx`{)?I^jY9uvhfqGX1G%c4 zoRJE8Ybk@quQh}}vR>#RarTW{$u*=fyysoDL=QK8J)KvoA6)3a@LdmYZE3EJ%Q>ZW z=~sJItU0UAM=fg2*DLKeum3Dn`O%M5Z)^R^LjUO(7uF~JwZ+qUqwbxiXPx^XsuR4D zb`v@4qgQLtw^|u@^}Fz&)f-#iPrYcRX?uc0xsy7f|LlLX@lJ`G$W=-I317ZKov^qM zqu#kf?aJq|XP|Yi)}YU18)?;lT0-5=%(aL^|9KVq&mH}=c1$2v`1d-;R^1~W*5q>i zXC9+~CVb)DqtG?4U6;qFwfC>alY>}xQgZBtXRTEKxu=|me(p-6o;zBQq_}$-Mw>~W zAM46^Vwk1{2qt6S3e6WQ$7{cIr|?dGopIoGtwH_gjs~Is+$&S>CH=2*{Wl3%VlIR> z!dCotv{~xy-wL$KhThhp|Kz26ptrr>XpjnYNxx&Cvmx;3+0|2YG?6D)&Tx&E6;3C8Ro zw^~C3cAZ&35&F-4xMuLA3r@JRWl8^a5Nj+?W`oJhKKf5M+Ebcb|4HrHa6TW74jP6v~j^{HAOpl{|Ew zi~CX5lani4F65l+zv)1!znuDSJ~`AHgs7Vm79mr561qy}Bq-5NIn#kvPjmI3Uiq$; z?!J^QKsg`0)PHlJ(E?&L5>x%>J^-V6whVbx(=De?Sfi|I`YbO?PixnIi?LAW`fmZy z*}e$XolgUN>H-{9% z(SKc}SVp;eF3BO+s$793Zyc1E19bB!%T?#y$8#n1CiI{Fd|kv<|INZb!PUQ7h`*G- z1>CRWo&Kb`{#(bh7JPxGQr03M9*+KVUV#$Pjb+Z=E7gCS6U?35FM?td$h{5dlz!K7 zT~1lE;a#r(mV%F-(AHD^s>cv-1{_uYt%fJ9*jty8?|Och!XIZ8)EZX9&28jT(tpb+ zdlfKG1YY&ual#wQkG4WGq`LazUIfw}t6wT`y@KkU5+m=#s_?p>kjKHW4;)8uH8Gc-BFA!h_6 z8#qWt#1;@yQI1(r5!5lF9usCnMMX@I%QT_S&gd?b^FeEtDDG6VFDCH^3V<-SIcFfArH^4N}>tE53Ke@2WCv50usb zq+k?sLHpMisqBb%aQK#;v45kW;eX!#^+hV0V{W1d@1T!By2c~DT~L;^b@Zqi*}sV> zExwzdjadlVzezZ5hP2hdp6UPfN9aCPtzNu2)C*B6o#{Nx3 zuBy6>K}>BC^Bi0Y6A)7#QalPVjYO$TL|Ug|ekBLBHV$VGMb2se=m~WO^wa+F{rp)d zk3MK$#{TuimcA7SBE)cvh{ut?$o`GP8)7^=u&T*J+gOM?8-oNP&-5Lm)|NGi84M2x@iCSc4yU=rntf)`*#dxH>yF_*uOa1 zkFkG~kOE`><{{0~@LPl$sHZafw-oP+(f+YE2O<|^aP7}QUTFW068pCr^H;Qg%RomW z%!;Zd4xu9ZcL++p5n5n<`dE~M zv46)q39u%3M{YdkqdK5H%?4|TcZ^R)3l7jiY5!*7Ewm)wDr=9cd*EZx%}0^n zGW&P=AGCklQ6g>7_Sz!vUxoJXZlrl9ti)ZoN^it<*bC)xGfM66m<^tW_gIbn+k}$# z&>r6_wSRxZ`?K%C{#}Xhv`6;u6y%Ba?>yv!_U|Et`MApEcQ@KD`+xj>LYe*h2CeBr zw3KskJ$#M0PR6_Bw10PChTGV`&+#5F?cepK_K#oQ`Uv*#W2E|Z*uVSH7GFV*W5~f) z{NjQ3?{ew?{b~P9|L;%x=b$bBpKbp*j}ZN1KfwIs<>ksX#=mCI-ZE6x7S5q?q>bUZ z<-#*&-)y6Off6=Khmm6(6)l|6i2gC2Xy%psl;XU&(am`X>gKVT0pxzPVz-KmNj+oZ z90nJrlCvAsSvG%cQoyuvPNAa3%=Iz`hAS%{j;@+HZZrGK**ud^>WKbvpZb}LeJ>pM zBIkUSnOkGZIe*1Cc*dlgvGXi*#aTF0YG%%oF;uifWzQ{V205b6xT%qIoSezwY>kE=Gi+BlZ|M`i>Wn)3#n z(PFxoALhi2-g5qcWodH6kt_CpD^9;DQ|f1Wm;>W8+O!JB#J-eyFWaP*vx^*W=lluF z-OSTsXP-+JdPC8yHdDxjWx+3Uab%ubu6&kY+BrMQnK`bU)i5Phaes~_&$km8E7QvS zur4_I&KAY?LeJEutT;-{v187+u|C)ym>E1L&X`jsD09VqlweR z&aW=8Y&fIB7%EOb>(R`YG39)M=In}@PcXCDZ0`)g89g&=VP-`+dcu)-jyG0(eR1rM z`Q?`>_=O7do;GJa&3B17y3W*^_Rrk0Mp<_J?Y22)ZB(?dy^wR>f-{5s{g3%x1?RHN z+!^cEw11Y4`BDaFOPO2KrmFtFI7c)&7RBB)zj?v=2+pLj{c}u(vz}~KW$m9cczmaQ z-wVIo&sJ~docTRlwtsrH;v5KPBl$&H&c(4rI9I~RT;w13W~RM!5PDvpzJ-jZL}$&=?)e#4k&__ja4QN{Mp-@($C7r*hr zmQ{KC=QjeHAf|eVi(@17tIYP_7-#C^A3YoK9dnNJ)29XJu-Te88_D)xPjoYH`(8}@ z=e#I=Tyd_2Z_Bg&)8kkZ#K$+*`3rF~|6GK9)=OPzYlgUa%o)3imWD_Vzpv90apq&B z&$Rz$s0CA({PqdwF<3(U5)b`>1xN#btI8QiwtxPrxax~({{d3g7O`-&t2+Aj{3b{( zJS{Xu+-(1Bv5ioQoITxt`{$Pq=)0o@BwFE#nl;!_+CRSv(gx4p)$x?X-xk>IpEIRx zA;Y<`8j!DOVJ-ud2EA9Y{d1HdhUXT3r-|Q&X%Bt$;oA)P;Fnd5{cnN%MMXVh*jJn!<0EFBRAziGtTkEVFyia{sKsb!_@zaz$aS|KgP z$ZvN@(buvIjT}GDMqb$ddqW#XW!vCc(zO4M(k|LV=l<+JzhlxLG1o)PZ2zrs)EavF z;rYBi;$r(RMoh&RJ8FP&7qE&} z_Wn2;iZwtTG;rd`5!*ks2=NDFHK$B_zgHbZokapHhTZ|lV%$PGR6)pS~Kl57~ zaSq0KkZJ#iK%yQ-H`xCBW0bHSVv5>-AJpwsto@;XI5cG=1^m7KzL%+C`#%`lei&C8 zg>>>OKpfFM0HZ3L>sW|!ww4&X?TNgZ_CH11|5W5;3<$rgRng)h)$^tO^Vc17Fv1bF z|GA~@e++7IMcDoi!${3ojMDXm6x+o-Y5(zxqDLDr?SCp-+5~C;Yaqi}f)Xj?VbcC* zL3dZw4Sk~UDH4c+_5Xq-PZ*PeQqjMve8u_>^h?>(E|Hr2S6~ z+y6>w|Hopis4r5n1Y=}zj0;VxF#Ys5-2^E=A1Pdmv7DLvZ2t=}LNplP?PmL5fLOa> zq?ql0p0xkdk*BIJ^N`ydq$?Y9Ol1Ghm-c@~h0!m8 z%)uy^>S%#yNc-Q2_J0S?ZN}Iy+yCt-=WVL}^A|VuG2XQv<4QMRRBfi@y|L;P}H-EPO|D)SKM<4jlJa3k5xmT5i;mn8;W8lANl!tqjFMP5z`lIn7 zj$-j_RivZ%%{Y;Hhu`FZPrZz(vW4Nw($6uYDE)j6t$gA50N->pPx592j^j7x*}igl zj<7KQCLJ6V&aoc`w^MfwBL^CvHAX^69MVB}o0|onMZ%FgEkfU*-DEI3YDs zAK!Fkia6F*@iVO*D@SpdYCgv>71V3SzWC%@`C>-DI6}ks(M|cA?``v);>s6}YjC`Q z?@yZXD?SzS8IflyU)ajoL!dU+9b+J~`iyWc~B~;mQ|N|9rQb z>1N-SqaqyT;B#D67p9fF<*x z4}7OJs(<#ZD_>0g*AMHTZ_jd!g5OoHTK%)U=;fxdNOI)Hcmn17vQ?{petFx}KRt=^ z9a%n0G{)Jg)L#xln)>Jav#fvqil6o0Y(Gy;W#z*9=dbSh6#~9P$M-V%b{l_9UvaOh zOy2C7`sed<6O;h!pW_Q{ejjWf$1SD)`Q*yC2=gFU6D7#{XP>b0B@a*We3P#e`r>^5 zx)4X^`frE+ZRJaVlFC7!tOd%u72;@%bpO%%?+V#IQvU}arXKQ?(-2QqRj>c{(%QPA z*J2sZ6Gm;sG)P80;@F#11@Qw>OT~D;8D`c0aGc{aWL4hsVEyy0r$g{;XzG75>VR*= z%&Kzz50Ltwgk1CMlTDmB+TUQ52EQ#=*)kTbba7b!{c+7K#akFF(DJ9C=RLAAVQ?3g zb_UwY7?c3(eR@)i6c6hE{-1)(X?WH-qRRDuKfbcI7|&z8{`uX2rFbfO7jFeU3g31zuxriqvxe41hU>vLD9u@fV49`WdI`V{r~NDyuSi_O|#NB=%tW1t&8nSC#_K*0G1n zIYf?Qa~_oa(Q2the|S^0hb8$u$=Kl_&T zkstngDAK@rHEL%5IZwo2R@w3UkZ6RSL@ltEVg75EN+TlaCEEGtuVJFt>7#+qGOfb= z^V{iph^LJ63-a_JV&^~l+C5{ZcVm95$n#e&W%7kM(_8Y-uhrK__?D^#n*1A& z6Lm4F%wLGGUlYZ^{P)6$T0Z&!jX(y$^4sx8`R90aOWc?F4fj5!(oA6;tQF^f1oGPl z_Y_nAQzf-_{wIa`AB9>NhEStX789)aP5uYq{@xX7I}rU8o&Pb2aYdN_k>GPNl4xIn z4e{n@b=+4*qxD7kFH!lQg0Zrd&>7{w1S8B*>9GCJMY$|P86ATBufRC;Q5ZKZ<0k)y zA;$Sw+5VSXu{#*qJskJMn~<|35Et{m5qG>Y`EAJmJm}wwRPc+@qp^RR#m~p6cWvBZ zwMB|7PU>RF(fLF!pTMzsdjeVg4V&c;X9| z{{OG@AC(lhWTc(P4rpiZ{_?C?s^S|-}UTe%LnHAVf|Ap=L;D}<>k-ckJrULif_O0S&_da=Li`` z>iD;^g?$$DdujFnO#O45iNA>Vk+#Yf_ILQ}KZfO3DtQ;;_X=1m4G>3V3*W}!J49?Z zOo^#~zQ0f?aaC4-^ft%esImSVBL}Si`X~+7KTD!Ac~k$55DVYFVg2*BVC+Hht)9vk zek*{#^$qZs-^ygmr5_CXbgEkYw+ZW?Ivf2j)_(`&xC1n|mHKZjdsVA{_PAQ%{>e7i z2_<;|O0gsI(jK|@5ocu!eeX0zpNjS09rfQ7_if^c)PE~%P5lSx@$rp} z15mG()n7flzt9_FYCd`|jgbQSMK|@|5h{@bF&Im15)wKoW5!Jcpv#K`xTs`4v9 zzWu^qtg!xvmDYbZjP3N5@~Eu*`aydqNhj-nSXlr4u-^;)$}W|OBelIS4#V%i&yZU0 zgEOrEgRt$4wX((3|AELwE%X4#Nc|s-yv&yRpHrDQN~x^=7oq;Apr2^!eVF7&hK(VYkorFm*FWojJk;#p{zvtHBI^G{%={mY9I*Zq z$l1Cmk^9-!#v22NVU%V`SpU6Rj%{V$F2P0Uu9w=c#U1E&5@faixbn1ko_zia=( zpt}B#g4}aq{Xc@=8Ko+f?*$3|Zf+G)u>~cu3hUES|69-&Plx>e>u)1|f3yv`y|1+X zug3NNSE>ISt5E+p;)>gf>;G4bhq3-y9L|luzeou)!2U#>owSa3G21ke;Mob*nb7v*RbA*{hP48 z1=}~V&cwO~>B69El7`_vtRG_k(2#L^N_fn?Fdq!x3~?~8JZ7F6h2f`QiveJX>qP7$ z9OHsB6B8CXlJjwnadOL*=T0`~ME3~@|1QpjdXm$z&vlkrMK9tL*^?j#{fy5^Vq0k$ zBi#Qhi}cD-f!wkl(c{KnJU96`=Xrd1b#Y|&JRgq-WJR^>)@#tPQR5~}n;j6eXxX}L zyD)K&K=?1n&*NAx#{QGoK85u%tj}Q0$GKWq-$b@i=FX)!R~PGW$g?g+;vC9Q%9H2E zW90w>>tP30v{h-F40AlfvhAYY*=89gITkBrD9d_ay;4tD&j?k;#g&3Vc_9CImS?V6 zM!x5}Sab7h6x1xN#V)#9lJ`N^`Ox_g)-?7X!*&B!=HUWtnYIgY{!XOrF09BenVj#3 z{UKl|8z}>p)5TzH<19Cp*;;IQy}yF>SnMNAaw_)!;3Bn+tTBIBkU8Ye^|NDn`=7;4 z?nW9O#rg(BAHudL)+ex{jdMsUd2`kF_n%xQ2C4D=tgLEClNC6*18IH`>)FWnCah?s zQidoyDL0f2%SxReV@1GSG;1tq%5J#_!sH9!uOp5JuzlR*Me?*6`^?+Ew(PFki|1u! zWoPH)_~qkw?nT;mA+4;}^ROS)d03}Rw-dt})$wYCIVKE`cCfF7*DI>fmyB`HWPi&` z(EBP@)SHtI^K<1swo!dDzvSU@`KX~>v{%EDo$Xbo|9*r&7c258Z5{1cu8r{6YRjl0 zTy$B#)5!1-;~d)>)5Vo-FxoGx3opyd&dK_{{O!=Y4f?lZdndN1V!HtHr(ypL>>q~x zpRg{2j=fmF$Np{DZo~EtY=>YQ$95RDESs~iwuS6@*!BqJd9E||$-x+Z#N|Gn#(Bp7 zRLB{YE99w_@fcuN~}yvm>;G`@&jE=kHpXPjY1f7 zjYa=RY$t>(&Q*0m8>AgU#B%A1QNbmQ+lGgMBQ9*6zWFbMkqoX_$3F7ZXjkv^u0@$W<4P9M|5{D=<37sVCjr&Qib57Q@Uq<-j=wFb`B#Jayl z>I3!S;UBLhG4rew+{3ecR7MsSFN;^M=gHLztA+o57XDWd@lnuU0=5#{RoE`Y+5!7) z&&#pR3y;TQpDT{lxhn8|g%=%Re5L!=ap}1V^x3?0e?RFf4YQB*k|~~zW2};2wCZHI z@?3=ruNS!q@gA2|EhoELb}T15mYbWCo0o^XaDMgbHEQJN7ZlVeD6CntX02LsTbcKm{L{ED?Xj@eIT+j$h{=U^R)ecHH*DN| z{{qQR!M{Y@MG*KF+wX8p8`>D@_yPMrVxN8R04wa9*hSb3=^LXzl5B;Q_rOhHZLpt< z{Q|7Cw`gy2A3|SFj%lBe7rYAN;FS(zPwzq)=J&5yH{#qg*wTiq$NDUeU&5Bx=o?u7 zj^l0EuE7@lN%pgxG`6(2k7LVg9INy>|B3Amtnc9*;=-%+PV#+h|FnYS%inXj$b(oV5_XJU&o6+4Q3 z46pE$cBVW}!In0F=TQgA#n@JT$&!vW!_(G;Y3DV>du-WYUzA~-!;-9tHt`j9_F(_t zSkcdS>f>Akti0EqgBABL=@;|9T?d@$n~(G8H}D=V{Z-g7c{ZB|2D>eN$G36r9jt5* zcVb09kmV$OwM(#NSy7I8W?3!5`aiXV+2mcZS~hGzevNvK_7(R{IC&w`a1pi_V`ckA zo+Q0vuzxf5X`7MvsQx7XU>Hs`_j%Uq$yiUr@#)x}ge~$VWyH3Rd?mYJTa5L8ZSf$6 zyG<5uJ7p1s`6@fHuf5Np`*W;(-l>i{Wk38Oth=xx@6rcn`%GZ}Rjj+Q{|dG&kIEMp zcftKGVly@&$PI||I&7mdi{lt}1Jm(l%AMzFXJ{Wzz;+(C`&~qFrTRJMBJFn=w%rgR zuQhwiYXeLzyu)Lab06aGCs?bY?6R?*f_=*L!#WV_6vW5--oaRxVZ}8o_wMJh-3)FP z6h0R7*PIFemR@7Hf5@|UV{BVtZHBcu;$T{#%ic==?HHUp49qM@E$(~Kk-eooN7-V? z&%}d3$tGB9;J9wtR&++kxh8zFEJ8$&&P`M%z|oTY2zz|KVp*JqmF2?nxesyg#5xuG z)39aTqYX$}P$&4{ndytafGygA*g9N?Ty#%%ABARunZLMCB~#dCSs`CiZmqB%mYbAa z9Oswf9P05y7>f(9)DIeZerN)|Ki>{ANTB;uuVgp@o0tkuqOUa z!8#Ldb0pR&xR&@)#hJ;2k>g?ITDwHauB|*?;AcO`HxdzQ>XGc0p2otmZF)=Bv% z=iu-SM+m`l=t0+%mZg%(`x3e!Y@+NOd(tD0LbQbxC-bZHFX{4MBpPlRFHB)97o9vA zM3Nqz7t-;`33wLihks*|gHT&=(w2-T$D$;7Wt3*KG}6wn)Qyu(P$$jtuY>$;p6r-B zKxz}=QBHPe9+R`EJGj}vQ$*>?b5f%W4Vx`jj?4Rx3q@{rjaXK8tbVNqdEEvKjt^%# zDqKWB)KU^h`Chh{RgjmH@8x6{J?P4nO`$6C$}iKR#8FCx(ypN zY*4pWy`ucuMGfn9>fE)sdyk&IdiUwuum8Y7Lxv6uH8Ml^@B0P$u3yd1sa{wkC$})G zPMumsvFdfI*RNN%c3!=@^;))R+pc|wj=YQMg#`z5neS$0~!Jt5=`B-)uK8kA3r6wTg=B)M;`6?sNHt91W!fl!exqV;8V+e752< zRZea!Czh9setq@a>iPM&yBE}`QL|=2L1AId!lGKWYSpfd*y`4C&a^@&zUH=Pq8jV(y})%NMTddiaXT zE03B#d4AUwD<_PYJbZ3+Ja^dWZgc0fUNCoR>s51y&Y0D`%Y1x`bNIX!D~?(n%wM^1 z-s**c({kyG`OA-4urL_7YW0GpD^_<|G8peqmY!UC!LmPQlXh zrQ$e25X_x>WcOaZmj=fjd1P@X{_Q4z5wAJKPPYL;UZvJY^iotw5J455lfp1ID&+)v93e%A<}c365R5dP&eN z7(Qtg(?I=J(j_^Af_721+6Qe)>wxUw)(Z|rs>;c+@B<^qGVEZ>k^N4tEDMZO>r<>k zIcWKvzDndIh13@5i_&R|$`GB-@LaIysFeYmWUzElai?X2iU%wm*m}W$r5!tVTGnw; zcWGTt6jruYfkN%UOAkd-OXij(5UO#qv>YQ@Havu!dnDW8-1%!(FDzNwcP{>P>)ph~j$dkysmR_z)45yn+X^&uI?5Th0%tEuEoIUuqMFP(if{c`!Jsywn0M2)!o z^~c1Pr9-zvJ0lfUc8{pCqx4n9_OM|@;mg%&h1H_W$nWH>JnT>2s!~h8)u1XAR&8>> z=`UA?=BkX^q@}kii7wX`E%~a}oisvAu9*9Or0xAKzul@VZ?!#3e^t{hJq}CGs;A0q z-@ZE$J)_22*8cw3wY=|Wdxg>NoA%x>?XzFncfYh>NLf7TqU6cFCN9j$af_#+Pp$d3u)mOlyI;^N1qgt$pNA*|{k7}|a zURsy?PG9#*>alxiJysxJN%;-z9u;5(@|Bcd_e#pIdnM)9y^`|lUP<|NucZ8Xl$M{{ z*dKu5KN;GZy#A-XDK@&~PkT8${w20gW83zgpZ0!=?Yw{ew3kDP@Am(BZ#!%+9{BU# zG1vwhf8M(U+fCTwH3M1dn2qBeKh<&97P^h|b7Gs^oI;-GaNAkX)gcVS&A!8%p;m^! z>7<|bZfC%P!chec#?`ETY%J*vX*8fik5(;snqfv@ZHhGa?}?qE1%+pL!)s*wy?R2m z@C7*CXGg{SH1H{({8bV`qe=dKPz@H`XX9@gS0{@qnKu%l=Ad_vjQE7y? zWhdI^hhRxH6Asf}vb3bBqE{-ahrB_!<@BAsUt@R9zMK(&~Egk>FtA_UHW$E6?8A|)~mQT z`pWI5E?f|dnYY@U@7$wbd;F*h6SR^lQ?#AKhAEx1-=`MGCVbPyQ4?A`ATFWyAHM&K zQTS_)GU283CX)J(iGOA<{ydsXvq$5ymCl^(=|3iX*WOY1Hy(>ifQsU8h?HkZh?x5i zOj@}fn*6}&m_*)3#=XDbdhuHIMR?!MZimL|d)4|*LkwBfFi`FIv1+w33GZFRV8wGK zSgZ|#c^5&4*X?MY@pAHzNbj?r_|xN5p2^BdkH99D^8hz)c2`Cmt5$%hFgJHE<<}ra z|FsPa9m~21F9LWEBAr?1PQ)3n4yF&Y&f_lP*w_(QZ7e&s8Hd@i5AZjKyWTj=h*vBA z7Q3-g*nKnm`_-uD+@F!K>>ozqw39m;o9tiy#vr+uB9qy_a=$RQ9?B*AH|{sc{jMAK z_i{hT8wP8G50&tsUETtiqHI?Viu0ED!GR|See(_~#(^&f@x0lXe$1{W2V?Rc8;OH# zIhdTsALL}`$ib|<34?Kv>)wVWCh}e>!a;TSE*vb$<4bwjHC(2+B(EomD7%&%tj>FQ z3=V3$J3-dweT1USuJ5wMlX;y{pV1Ht&rK7w}U0s zOVXCkdk?3w`?xPc&l67dTT!LiSH$kXv}J?rYnaL0-zLhG?sOK! zjm#~6?i@P-=dxq0#C%pNlU)Os5|->3t5eRt8=b|cWnww^vLIrg<6O>K3HLpBr^zl} zeR6UZVYgr$3g6BBeVcc;{1qW;&H-X5fAc#h)x>jQE|cSLe)FWl`+GsGIs^HeQ|k*4 zLSu4^{w9Z+lWHwmfHy!t!I8IlOyLcvc(?H$DEBrmDIAKLcbj}9M~T8$c+~V~Ihs`q z-x=w}qgU{ljYB|Q2 z+hU*ML_URojn3kiz z|Bm@Td7y;Ms~473eH<2EKLg~{8A1vbIhy435+U^z;V*h}&fFlRiA_ZB)i^JDYdD2N z(86*y?2wQxqLAm~u&@Tnxi1PSR^(BVjh_k`Y!iw7SDcsF@lB)cH4*ZnqHN}Wauo7Q z#{N+u$icRkt>*atsM*V3T-LeA9EgThcmhGC==$u$D!nPP!tl{)-&Y8Qzc|^ z6tZ&^a&Z(A_T&8l2$^0dAxA_ZXEJ1GXx|)#JisaZ_Xvc1e5-^^L?KVcVc~k1(3~gJ zLXwKq9SQQ+w}hl@BC&ss^HPsPoWee|LCo& zKsw$llHZ`p<`W}3Asg)-%v%d z;=V$*D}wJOII(V1h1{#ih6W(rmkW7Nk>^mFu^wj#c}$Tl?Lc~_ggmXtOU!AnT|!>e zgnD|vCge3mP8bN%=PMy^De~SVkiN0%EQ5?9Z=yZN`n3@9u_6z*2kAdh$QOzPaLEhFSCMZTw==|2hCsK{!T&Wt*+ zSh@a1iVQ$EFgCM`kjoXx?Flk#jF6Nf^Sgu0K3vFFMe=Ep=ByKPn@z-qUV`&tJ$?C$ zd*eo&i5+^IgilA|PsU;4F|?tFJtf3x5?&!f=63>_n-LOMv^3v^eFx;68TZ2CrhW~a-&C)Mzop7b6d~Ut{|&EHF^|zi8ge#hwCxdPbzX0ZRjyggrpT|LL0iKw-Bd=t!L?EkYgtc zi7T>=WbHDeN0H&Qp~szO^eA#3$?;biJuPiLXVZqBu+!*Kqdlx(L z3!_Jo11NJ+HhMeg-LCw9sTqo=j4 zXUc&fr=Df>D6)Yz^t5Y@9z_};C$ZBXGL5RVIFdX zE3tj3L&$Nop%=9h;&iad<5NKXGFV7jk@IL-E}kVM+0mAHpDDg%rP0Gjc`P}i=VaQ@ zOV2fWI@{z1+R)3k8a;|M>jH9l+UV(G%XB&jPa0U#OYy^n`uL@S!47lQiIpQwVRBdp0-Rj z?csH|7(Kmg@&#?^^-mZ*y=^j{GB>LkSJXOoXB(2C9w4t{oge3dhGCgQRZ#~}V8DNtnE#++-Q-C!ZXp<*NZr^6~ zC^BaT$hN12BnR0tpWq;N$NNI!gKcsRZRqx2gg8TNg6|DFu{-ObrJ@}u@^9MEyNZP* zwmK6*UOPibN)x0v_IgT)GtHJs(}upWOGrYImb?!B_L`8iB3o&5 z-uy~PFx`&r*p487kDq!c-sZRg8E z)CFw8p|;E}+R(2$2uUb1ifQ|Lgpjl%m(zysIZQ}!m>pXIMy_N3UMnQ2$n&(J-&`Oh zqsZ)DAm835BtF-Utta|2vG1M|l2YVB)N|}V86i%>mN}I+^!uNLBovuK8~Q_?X42ji zxs^8bzg>g`^X%BB(IWjgMo7{oVngTSyjag{`HN@y-E1Adtd;PYDEvem7T!l2`s)Qk z;)jPigxo+I`rBe@$no-~FE-0x`&n`e&?nFTug=W!^R&$pKiZ8SyY`{BXwtK3eltOK3N^{(+ z1UZXrsaCALn0vpVghCx@Omp4W1f?~iHO+Is78ESDBmCPypz3a3z$_;fYD(Lf@3t0{ zQRpEWpc-ymP<)9U;U$zRa1R!gQs_9E)SB)ZLC#WJYA$VRp}Sd7LZRA2fNHt72}&z; z1yPavS3$utJ3=<&SZ()xK}m&n(5}{Te-)HbXdd%b*KN?8r4c{Ej&LL`YdyDzpp-)2 z(zMohCkb+v+fr^npa$+zK?#NaM&sJhJxx$rp_gf08@X2t3XZfREanB&*xe;4snF51 zuT9+71!WZK%L}EcyGKxbg&pC)XvLbj)zP`j^-~Jf91V1U+eVOclr8lLno=xqhYCt4 zlyrcayN3u$D|8vHYzy~TK|zTf;VT|cOZNgnNret&3R}6i3(6>TCk<_D_h~`#qwNUW z(9*VXKM<5s=tG*?w(f6&oRzlJ(X_Sg+=dX&^%DwBps{W5_7s#>=rvl~4(@@1f>m~e zSNK33-DQH33N59*?c|;=D5KEhG`OAJl%V)(JHq9(xLw=_1f^^wCie}THyu{_3&$}Z zv&D3CzYqcEm@uw14vSu(&F${yplQS2Df9r1ZV$JGptwTSrULbJ2MJ0jbk1O)UhXVG zNrl?d?Dlq72}&vSAkA(cccY-RLY%jX^>uF+lu>9L&2B&U2|>;pJ6|hkcKf^k6ci}b zU>MK<_a{Mdg$C2?4s`3bmbzEyzwE*ea*G8e6&gmfJJ=mBD5X%)8)%5TNKjg#uV{AT z?#Y5O3iY4?9qMioouCEVeWl`0)@6wYPkD~ptwStXm&@qUkXYnw1#GPq#J9) zEGHG}K-)UXZ7C?F&?W55j&=tNN-NZnW_OG`TTn)!=V*4vx~l~_YwdikWxmF_=L-rH zIs_FJ8}HsCD6UW*joJkFNkIvP8qn-cbTfjI3VlVhJIVc7P)ebH(d-`R)@#esNGrq{ zj@V?ko1lzBXN>@w;!Y6c9B1ciCHu8g-Nk|eh467~Ox?Jr2#PB-dNj~9_ewzth5kmf zJKfzWD5=n;G`ln0R|TaMx|3#iru&tkv_hYGK(pLjv~Ns+DzutrcecxKLZDB4yq&M7 zX?EwhLj(m14TfEb9qi5#6j$gMn%zU(V+17>I-6$qP$j&=pwMYFyYt=dg5ow3vpW&z z#o)#wv-=BM%p!Nb2qYqbJ~%A;fM$2Gdy=4(LNC+oE^#jtlu@WL&F)fnhoE3xm~M&i z8k*f@?n{Ca3Js>&J;MFW=u+ran%(7YHP`@@kwR`B(2;H+C^*s9m7v*O;SLa#Q0O$8 z-J{$Yf>H|2r`auWj~0|sXgbaA(eAlM*Gaannn-nQrF)~%rO<4e-Bs>mMwdd9+1p+1 z{=?`}sM;W)W8D85UF&UKV`)IwxV5p#^%DyHFb?Qgw~L^ZLQhg^txI8)p+Yy(>>lSX z5ELYBUFSi6?09#*poBt0X?9O=FBg&|Pa)o>V@bEUpo~JzX?9O`2MP*Kv2}H&**(RbDJY>(wV6Ptx+{$? zh1^`A)7eX|^stIK?)&T?Hi++D@~3jyq0JN}*?HcF%Pe3d$(N&tJvPbCX8b>9($O zXm&TcR~TIi{gY<*eD_|XOQ9JwyPMpXjV^`i@P@b9{le%v!`5{T&F%$m4lZf5d4<-| z>|W@$5R_6V3*#rTi`+qiG73G%eEr3pB`7%4)^!=p?#1pZqf4Q8ssUZ%ZZx_S+CsB? zse7~0Wg{`WPvE>5++6t!+uD9C1g>!35`n_A!W3-7VNrtZY>WFJLB$HagR3KUrCW$A z3~xUww2Nl|fy} zRE3Hf0bS?bC8+RhJ6~HF;q~qdf{GPt9|O9<{Z!Cog%ZD%@b_>vdYm+uR!j z6)V)ZI?(NITF_*LZsVP1oBOt)5`|hd2fD-kUeG3m2D?Dp-CEsP8rv0G-vj7Qx09gV z3XP^Uxyv0bXpcgRX_4=C4;NH;j-9XAG@u>siGqq1x|F4Hk9(=0$qF?Y4|K14x1bV* zYO$8@b6*s+NueMB+UfpF&~}C19|Ls1o7J6J-mTEr*+9G80|f0+=t(rC*aL2VL51hq z`TCJ}ng`wKf{GP7j`#S7+!8^P6}le1(%8f9If69)RTcPf3y^py+2->62;&wofyG5w%T)*%WZZ#O@T)$YMbK3*G;0A&w+epmr0GtO<0_Z9a{L1~3vo(lA;d##|vCR=I@&F*XNLxP;m zHrhe6`?~w4pp-%**eu>~zZDd}z?OQ4H_yMh1-Kic6Q|G?n%y_u_JWcZ+EQ8UbpPEQ zAt<=WMzeWAzU9splvZf{6ri`=;{_%DVoT93#@=!NBFMSeM!%xJ68nd{T~JD)wYc>NwfP;_hUgBg-&C`&A2W`C{SOQ+EQ~_Det*W1O=DbXnb{`_g%g?jR$0f zzN6Xwz?~{6ak(uuy*bc_?va9=D{M5w1^UQ6OHfLoOVDCtAG_BHif^%{<`w~c;yx@W zqtJOYyPvv$7nHoxmI|f;{mcDMP;ixv9-)wa}7*76tb zNI_1@MzdKdU%ClFDTPkwmGYH)f}r>{wp5JQ>eueYf-(xtr{&t?-YF<~tu3{fZT{cx z^MZowY;+sW#lCSr5tLTwb!Pcn*TXYluAjKxmO5fO(06WALCy^}sxtxTKW<+^DTR9Q za`@imOXazKe5);W0u%p(yFyS#p`8d9`>%VppyZ9VRFj!NKf2co3U0Cy-vNyMUhHh zWfV%l!o=!&hYAYrvUL@p?ZxVOYmF|2y5|Db_bxQL6v}6Jtbw=9=u(ISlCg%~Ge+0l zwyyYCphn(@Mwdco(Wo`{_8MIZeb^AFiPs3@(`eHQHD$wX>h%&7?67ss=Z&G6H(5|Z zp-Gc~4)Bf;lv1dDBcQ-L!{}0IE$`ONy=#oFdu&}dQCAD^L8D8dnRv#Hwe&criOX1_ zk-Yd@dEXda3O&z@sI^xED$(ZewRLUc72d{cCn%v%E!v>A-f%%Fg@*A?)6P3gP)4D9 zh}wI{8D00;x|+vH|k=r_lTz21T{3fx||=-M!_45(>S^ zYq^Jarl6EU0WCmJ?^;0_g&yK_VK46?qidI~t1CwmdV6mgT?#!wYtzU3*632mN27@K z^$O5qN1L~inBDd`Z~D3Nx3*K%jxDCYH$()22f`F^qPnOi?<51fIfBv(T~D(+&^ty@ z;z3*L$}FHk-X=lLLpIt@vpd+kRZvQy!)bPhcuxt6KWs}~!U~Ri?+MB%R5B50sP~JY za?e0gdub z6_irwUE0>s-c^F)kK0nsh{kyL3(6>TEY0p%?=?ZmCv2(KG`r)xuLT89+Gs4z?szW` z=g{?2s3pzr1h2KA#8bA^7#7q-FD}UWtBq!|G$wfm3rZ<;HO=mU-Woyir){a9X?7=j zn+0VQ>PfRZ#bX}=UG-;dspDx1r+QR^`g+zzr_<~n>ljx5|mbGHf`%6-s^%AyKSi#hz|Ak2y$MwQ9m?_*kN9E7)#tU z6e{w7=6Y=e#b2?dPNr1C8!9NH&`&rQo97)ODEX=_^$xGf!@Xk#1+Uqt70vE^?*c(- zg&NcBF7R#_lz82idbt_ULhoro&KowmsyWai?*l<8h4%1TUhMrQDE>EFsxQs%60ac! z*I^13x|=p?sn=6b@=aT6G|lcZ??6Gp-);0N&F&H2GC^sD8q@49_f8j-c*~L!vzx+s zF}PXsH|7)#W{X+j@iPu+oo|N%8*o_Enr8PX?`0F0Lc3^oOS~@xr4_2nhI_P^Gm;So z@7NJOMYFroYauA9&{~?^Ro);$8HEZb1FiOE35x&2j&LLk;uvq0pp-(5Xie658wEM< z+EN#`20GTeSx`cuC-`u;)_X!wTA{lq0v+f5Q&8|vJHm!EyT^M!2}&yTAKKOvyt)X1 zx>u+d(K@eKP&{KtxRGY}L~p#HltKe(c2Dva33A@ErQXJvL~OlxvY>=Q{j-6R-WEY= zh32xLPWJ8-6wtO|$&m)If@b#=?-fBwh3=)XL+f-(xNqS-yy%Ls~pY)9Cy9ng8+&w^44JsbdS^y_ z_cCvYpx|>m!h4$oUGB{hlvF6z2Iva!7(p3@CKGM(HVKMyH|6~zC~YG#yYH`) zsOxrbhMw4AYR-qA+azinMx>jK^3oojR{G=XM!yLY3}rO*vDyLWnz8C?q9O+#~+ z_Yb4%8(Y^mG`n|u|24W4nvxB)!>f%EKJ2lkJ0s=t?O=@-3PqgMwdb>SQ-y{ zpBr5YJ;dJbLtZwj4L3Z6zN`-Pu-9Br@E=>(md-$rcmo9`6xu+uoAzc3N+~p%&E`>W zrJ#&LuhZ;4=JBg#Xouh1x@OSqKJMLQbSZQuZR-=><3^W4zY;y^y=!zSbZsr5r@SAH zt{-e&!)SK@>eWF}=K2YR?xfj$+UqJPrBDZ&-DkXUf-(x-&Fkw~Z=s;zzqYPvG`r7v zNux`l@ie>7dsi4;3b_XWz2MzzbSd;=bD$T!myNC;ZC#5o%o%&h`@-l_XbH{kZZGFR zY4ZwI>j?C+*FsQ6p<`*;UhxJA3VyP6`D`|?db0#26dF&n`4eWQ`PC+S! zo)`x7AMaH`X@$NBfWG&>5|mNs$U>kWyj)xr=<@Eh^K})i=zqOdf&zu=P6ztY8zLyK z(5_lQKY4QmB@~)N1N*agjG&}K&%}X#@iqxcDKwky@K^6vL1~5F=k@iQ$46DvmqN>F zVE20O35wj0ns)dQYuWLC5fp^J8Vzbl1MB+rk#jr_DfDr3AkXhED521SXi72PpC~A) zP?82V%U>cWrOx@$VPpxTte1Ch_xWU}OGkf&v>! zzxHdKmw^QHsu+G4aRcpmo?i`>iQGm4e@D2Y?d*6}_X9ymh1T;%p6?G3lve0b-f3$1 zGXyzam^g{>qB=kY{?SI4LbvfssOg_;bSZQqE4a|V(dbgBRac-|{$oa$Z|myS38={b zhtZ|b9E^U)YWx2+x)k~pS4XUlUwZ~iBdyR2yh!T$T?9E)Y-q+=*qKoy^Vud7yo6WOQC_ZTwVPyj4p+KWs55Ib7o7MS7;@R zx0~NWkW<~(^-~jj^X*q%Q)G*KgO$374VIE$= zVbN-KJ?8rj50z^mLX4~EK1wa{dkRWMh*FZS194tbRQd~`TbQmT{z4H*MFRbBDCtU; z6Zn>8yVSo}1olJ%%Wzo4hv?W5{+)t?I$@F-R}nvV8(Z!_FQ_C!l#+CPf*na$=_~SQ z^NKC;e-(jLB=9l?SY8bd`@H~vlp8zR?*fqPKOG5pI4pXmC(tT?te{MU7+2AEGsDI4nAh z_tX>o_XMRQ#JGyuwE|k_|02lYR40}kk@}Fg+mrnIbD7aZghc9+hCu86?t)ScEh)*( zM4Xr0l)jqPy9oqN_2-L#( z8qV~e6oF(Ua2W+yUYT+N8>rzd|9cTgHx85ZECr~cRwB%U(U9X5-O8fc;I{?H^@Ap% zz|WC}VdVrq@F8%HKT8Bskw7OLiiTBM0F`lY9t6(w&lZ7nBycDNn1}1j2~4dEfsOty z5!f9GY@`75@OmUrI%$|c90HsD&qW{;2|PjpYRH}!X1Y{hD@*ADzX<>aLYsz}-a`Ru z=%WR)oucPhN*DPPMIaLiG{>Q6SW-@4FH7k!{z)Q`Y!+&mN&#xPED|Ukfp0q+0+;)D zh(J0LIF$m-!?WcC9&;gZg`W|D!UIALJ8)R^Ia7P3|FfWYgcw&*<1C=7{CbBo=bIu# zDM?p1oR>Ck(gn+V0&6ejj~0P+B+wX#lCHzc39Ml4UE{A6fjyDH1RNI4Wgf5hFBIei z!;mjrmSTC|b%Ad1w+V_zNbGg>)<8G<&j?CHNTm8OH#hko3Q9#tq^@APZ}ImEN=Hbf zHZX;^`i5+Q7QG)4xPeDng8_=vfYm+~waTXitPhY8P$Y4*vx~L5ncSBGrnf{vQ8RK_wBQ zlspsviXF*KL#HU08Q5N6m?`FKj3!}l!*|(r(eVYq1Z$ISV2z9P`60! zZUgkNzd%qtLLxOAqOr8UUQi-JBDI(|fk*wz1*IZHDM|4iI4>!#;S_yU2SK0opOm2K zDCpHVEP8PW&{KX!&^r<0lvL5HlzQ6#S%E)84C2gKS9vI2vJHJz+#-26qj~@I}L}xEB=WhFfJ09g2SRwM6dam3Yr`t_Cbph zL~rI6qJb&dwoS05xwRAOHj}{%o4k6Mcatp@v{~&x053z*9YGx ziM{I|ASe+b>49@gN2bsG z9|WZ%#LJ=f=i^WeEl1&Uud@J&&24ojc47ZR=S+@qj#EfWWSryl#3S^;>2UWnAdZlZ z(;xZZ@(tkN63a*k6Rh2#xZImel- zi0vGw#3mAZMb2?HL?O#L$JwNa?HuP~MLgKs$T`jyn~2_uoa0;@h2%|GImg+qi0vHb zVVg+o6*v=Qyb-KrHN7UsR2bDYT$snj`6G74F#bDZr_$V#2#JQ0Pg)HzNj3R%uMj?+ENn-JSMPGFP$ zI>(7eA(u& zi0vF_jv}^moP;8_bDTwr*v@g5D`GpxS*eKa9A~W}wsV}56tSJ-oTiBF9A|?fwsV|K zirCI^E>^^LjMQrCdP9Iy3?Hnhri0vFFsR?ap=o}}li0vH5>1*q;o#Vt6v7O^2 z6|tS;q!rMQrCd&Olp_?Hnhri0vFFsfg_yC#{I> z9LE`C>#?2V#1-jF8yY&tNh)GH$4M))!Glcb9LE`K>#?2V#1*lf<0KV%w*_Jgo#Uhx z*@6MC$T^NP#MWaw$B8Razya3KIZjd$+c{2Jk%N55gwAoCxUI)_juThpgzk_Do#P}G zX;mL2bdHm@iP+HnJI8T`hT6+H$4M( z94C3GEpx30nb0{-{4kr?&T*W%HnE-Kq!szT1!4=G<0KQdjO`pJKF=n$a~$Vzo7m2A z(u&y5agy_GnImXJL+3d01vasr<2Va#Vmrr4D`GpxNiMQv#D?zQIZk|W7`~iyoRlKA za~x-hEn_>!Nho4F$4M(18jj+0cxc8-%##CDDoKhloPc8-%$#CDG3 ztgvNl=Qs&PZ09&>MQrCd!BKW>wsV}MBDQm!j3TykoOp>Ho9!GYrHJhu$2r=Tv7O^2 z6tSJ-q!qE9;{+@1*lg!GNkweuI2lE3=Q#0Ic5JqDoRlKAa~x;2E%P>JULxl>2}Nw@ zIB7+e(1wQ2ae`y)*lg!GNkw*fkO`gRWE8QTd_~GRPD&x=9LG7)mQv1f5(+8jIBA8HbDZEL zJ3{3gC#jHfj+0SHImd~wwmFsR7g3;$ta|pOIL^7YlyZ)fP)Iq)Nh_qB;{@kf5sJyJ#5qnf5|H0(D(5&Ug_Lugv_i@` zPDUZ+9LL!hCQfuI=Qx2v$~jJ4A>|w=q0qQ4XfcsbDXq7$~jI( zA>|y$Ip5CLu!)E;a*h)yq@3f#6;jS|5(+8jI7x++bDWey$~jJ2A>|w=qmXir<7~3? zrJUmg3MuC}afLcILuo|LaS{qC=Qv4)lyjVvLdrQ#S|Q~eC!>&Zj^k{$^QD~Q1PUqV zIB|uPbDV@iXN^FXBj-3tg_LugltK>QB#fNnq!m)maWV=i=Qz#|w=qmXir6I^ENQqFM_3MuC} zDTS1CoQy)sIZkl7txGw_NhqY8|w=*kbEa&T$e7Dd#vTg}&yfY~&m#qtJGm-N-pkaHXwFImbyTq@3fV6jIJ{G72f@ zIKfr6F6A62p^$QplTt`I$H^$Pj#FHbbDZF6TbFW*{zUrjOF73WR!BL=nXFK|xryF$u2&TfU2bDTX29nGne$T?2owRXOgbDUy@lyjWP3Z-fw!pJ#J zi9*Ub&L)MFbDZr8Dd#x56}k<{Ep?8wN1;~Dfg{duQ$JwLM)3mLTbDY8(?0hNbIK>Jn=QxuUQqFNo z6jIJ{HYuc><7`(*Img+pkaCW*N1@tHk*~-(PT^KNU&=X7u|n^~Ar(2tnXHgS>{j9&$GI`gQhDb%DTS1CocK+)lyZ)fQAjz*N#1Nr zDd#xBEjCilancGY=QxR5Z7Jm($DwV(k|X(2&T&!-Dd#xx+ifZ394DjD*)+S6bDZQh zTS_^{3GT4b+5l3KbDXq7$~jJAyDg=h<2ZNPNIAzzDWsg^#P71DzQaMObDWGq(`j}i z=Qzo`ZK)YFyODF8V26#AbDXq7$~jKr9$QK|$8qkpk#dfcQb;++iQi{SDd#vDg_Lug zEbDWGq$~jK* zAzMm0#|a*`k#dfcR!BL=Njzdp?PQyeoZ~oY8!6{FDTS1CocN=*lyZ)fQAjz*Nj_#v zDd#xB<2I_z6h_W*(hB`Q?7a!N9aWXTUH9G$Hw-a^L1u~>QOH0Di3}F=EMZUqhZK+m zB9O!kh;tzhsE9$arPY=~#d(PH0Ij91HqKE&ZQG%2#St{lHj4gtRjqaIde=TD_kMPs zr}_FJ-G=1-?Y;J{ed^SybI#3vr#6qW%5n0~*j|w1B%ig>#ruR_D#s}iL5`Ds&h%<8 zyW_}lYV8oqangU6T5SY5PL2q2oDvb_I5i^3and{OSdio7h#LC;h4&3v!$s5#%@}qP?>)mdbHzME5r@lPbqaH`=k5H@#Gj zlOuv0r$hufPK^k1ob+pUEXZ+kM3Cc@h+edJn4!vXYDAFZq+hpVL5`Cnf*hwrG%Nhu z!=4ixwA(rE0cgZkq1UXKP2y&d_ZrclTob;PE zf*hwp1UXLrE!zunoaEa!f*hwr1UXLjAGR0dI5i^3afw6+oCI29tuaq=J9Ui0<| zW2qb``7awmj#DCn94Gsc?FBhbjRWfZ>}R&u1>s-7_vAP=BFJ%ypW9vwn+vGQanfJdXy$N;RE|?2x~A!+a-95^ zwio0$$-Op$9H&GCIZk$;?X_F;t(3}fYDAFZ6u+{)-q2ijRgRPX+D4G$REQQF5PGQ` zC*NdyL5`FB#zv6il!ze5$$o2lL5@?~sJ-ltBgZLzC$(ZZPK^k1ob30u7vwl4BFJ%) zKiFPZpA*(dLC;O8v2suuP2y&d{&$bujI5{H7 zaVkWR3qp=lAc7pHMg%!dcE2qMIZlZPa-8HZwio0$IU>k$DnzI66CP!i9MPKQ6GoNeREQwQN&jvOexkYTsvM_4 z1UXKP2y&b(IX-EAb;csdaY{sIXJIUr<0M12*TKUfQaMhJ=%1TjD#xi1L5`CS+k%ke z6o??lsS!brla1JdkmHnyKHOY(RgRNPvb{!|Ypcp}azv2hREQwQNhjNakmD4HAjhc@ zL5`D6F$LSp?l^LsQai+QoElNHF-cF3lTMXk+Fp?3LCmpq8L5`Cn zf*hwr1UXKP2y&csnjH&roE#D4I3*&;acV@6k$N<@(3 z)QBL*NvGSfAjioO-JOO*Ryj_I2y&bn5#%`O!|Yg)mS`(o{K4g$Qz-8WH3;$qq8Z zb{df5q=+EL$q+$~lOuv0r$7WbPRXeGSzDFkREQwQsS!brlk8}Z3v!$k(chXM>r^>T zh6r+;91-L=1tQ3CN<@(3REQwQsS!brlk8-V>yGB9cT|p(B6@FgfmJz9h6r+;91-L= z1tQ3CN<@(3REQwQsS!brlRVrW7vwl8qUP(Do*XAbbZ>KkRXI+M2y&bPQR8Om$#F_V zkmFQ{Ajhc@UD#Y;RgRPFY>(^n%>`EFI4L5?aWX`Zx98w!Wj*}sR9H&48 zIZlNLa-3v0I~L?P86wDW3Ph0OREQwQNp`nmL5`Clf*hwn1UXKH2y&cc4?EUP&2v@d zI2j_yaSB9`<5Y+s$4U0IV?mCSA%YyIKm<8Xg$Qz-WG_1wuj#D6l9H&AAIZkqb9Sd@t%tq~Ioa4xGF4GRN9A_<}aNdr| zaS9u?!;B-xDYe5y4CB+6P4qX2T6yC%5joMNQa5aaVqUFQ8`X>u#7NK zIZmk^CMw6NwZlZ^IN2j*N)wgiIO!pBAQP42oT43KIZm!oEXTP{qlwCKO6@RF zIZl1397rt3$!19u%W;a?wio0$wMMZVC!K40wb!3<M8KaV5F$+g2oM*Fi|;9a)gX9Q8`Yg9VRNrS+5;pIZmZfEXSF#K;|`3IZmb>cDq=vycdT*v|f;& zO$TzERodZ<(2jDPLZkM|3pq}uQG30H9H-W(?FBhbx=@a$?FBhbrcv7qa-2e=-c|na zOXQGxidD#QO6{;$XxF~_EQ>loju^eCA|)2p5FKsipPO=CIElQe3+lA;`El}51~=X#CWUXbII8pU#)J2Yx~wI{$h za-1({hggoYQKMLnlN>Dz6U%XOjbb@YsZlJ)*{D(b{J1kz@5ym$jbb^@Z#9bLILR?G z!&r{9NTXPeQ)m>+acYfXInIp7$XKx)XSPP|aY2rgY1BL&CMd^Ahr_~ja-7RWj&tkE ztbLk3=j`@B$>+9zNRE^2JnbPl&i_d{&b6%^$Di|CT#mEXrtm}?zVWgd$DSBuJn22{ z-$ahH_g~t-oxk0g$@wj5WEbDg$~09A_saR*ti~P1 z$#M44md%SWPP1-YX zkQ^sHMIM21wB@*RoKjmxa-5Bt zj4Q`UPLm@TSB^7VTaGKoIYC>FE62&TWhBQbkXSiRX_L*$aVl*Y$#Ig?<*3`l%5gHA zw72e?m*W)LK9b|S2#J;BT#v-cabAhU%5iQ+V&yn*Kw{-MZ$@I}IPXAWoEb>09A_saR*thf5-Z2q2Z@#A9E8Nm zaSladajYCCLt^DP1rjUAsgPJXPI8VN$I5XsBvy`7AhB|s3W=5D zB%5gFzR*q93v2vUWiIw9dkF(=gIZlSe%5e%L zR*q94S^R?VuAw5w$&gq%PJzVA zaVjL!o1Z-tIZkrE9mmRXG9>4Yggzq2DUet>PKCtEagqz{I9866*`&ROZeEU4X!}Tx zlU*odw277DBu})7mE%-MtQ@C!lI>&VIN6hJV&yo=Q*2`8I295r$0-)uK30yC#SUFCG#L97si)|k($H^{1(p*DDj*~30iIwA2NUR*ESZe!NIZn3BCRUDam$IZpCan^-wcg~ZBnipy;uE62&Mu!)u9Bv;zR%5f?rR*qAw zuzjo?CtGO~E5}Jz*~H3mDkN5pQ#{S~v2vVjwN0!XCs|_?E61sjSUFCy*7mV-oNS#< ztQ;q~$|i4YuAw5wsgPJXPVscx$I5ZCt8Mbf<{Bz;oa7lcv2vUWiIw9N&$NB494C90 zO{^RzdA3b19| zRXMUGPwFST4TxL~{Qy_vIr$z)hPWDDy@PK_o!2^bV6mD9ljg*KW$4TB~ zdqIwqBZ3^KLIgQZ`es}3bt7RKj~sexm`%9iBZ3^KMg%!dcAG5-IZkP#_LBR}Fi`tN z{nYmNp=9PynhoaX4Bgw#AbE?_s={AqLXMLnf*dD91UXKQ2y&bP5#%@}BFJ$nM3Cdu zh)%O|oaC+cxFE+#5$$|jSdAlx?%%I@JTgR(k$ z3Ph0Ol!ze5sSrVqQzL>LCwYfGF353GM3CcTh#<$w5kZbqAiBA^?5Z56LC$4NhE$ATOuM+7-ei3oC>8WH3;>4)rCkmKZtAjc^Y zL5@=+8XgHxhnEi(hcr)z^uu;6$Z>K+kmHny9=~rWxPItsZNVB5{yWFcGvf|>T#)0;Mg%#|B1DkmtU?4i&U!>?8dgK)I2#Z_j|vk^g#vj`F7II9prjh_lX>*L8WH3;#kXxQ$Z^vDuo2`q6(Y!S^6%JQ zkmDr(X(PySN<@(3WZ$*DrZ$hV%5iE$kmD5Jv%Mh4NxyF+$Z;wgwU^y-LC#`Kk$Z>K+kmHnyAjhc@L5`FD(2fN;PL2q2oDvb_I5i^3ank>?V?mCS zBZ3^KLES0Kdvcr{5#%@}BFJ%SM3Cd8Kel5*j*}yT9H&GCIZlme zkLG?s(>9_Z;268UMK*3v!$s5#%@} zBFJ%SM3Cd8zp!ILj*}yT9H&GCIZllTa-8&+cC1<9UqklfI5{H7aY{sx?7wX<$Z={!kmD5h+g_04q<^syWY|WKh5v+a{3qF7kmID2Z3H<^g$Qz-e2VP_IZiUwMv&u_h#<$w zMr|+1acV@6;}p|uFUWDyt!xB2PK5|^oP2B3tG(=wBgaX$kq)sOCr1Q1PK5|^oOD}T z5OSOX5#%^EBFJ&F>9!!`I3*&;agvAGUXbJDh#<$Q5J8TU&aed`$0-m&j#DFo94Fh( z7K9w9L91-L=6(Y!S z(p_x9vzrU3%5e%rkmJ;dAjipewFR3KW%Sj<-#DeY?3Rci$4Pdxy&%WQ5kZbqA%Ywy z-Q5<19H&4u+Nc;*j#DFo94Fhu7K9w9LBt1D!i3oC>8WH3;X==xU94AKvIZlZPa-13w z8WH3;>Hc;s$Z>K+kmHnyAjhc@L5`CiV8?K+kmHnyAjhc@L5`C)lM274w$~`gadJeLHCJSn_FI4L5?aWX`ZRF|rzgkB5J8TUBZ3^KKm<8XiRf=(PCYqJg$Qz-8WH3;$)WbRAje4& zL5`Clf*dDD1UXKD2y&bf5#%@(BFJ%SM3Cbov+Qv}j*}vS94A8rIZloUa-0GYuj*}yT9H&48IZlb_i<81}O&+;6Y+D$P3(=37Xv#?Q z08AUH5kZcV%(ce_IZkS$_P%x;IZmb>VmVHM2y&bX5#%_@VKTY4Amlh1BFJ$HM3CcD zh#<#F=Gn0z$H@>uj#D6l9H&AAIZkr89Sd@t3=!lw1tQ3CDnyXuB=hZ9kmF>CAjc^X zL5@=)f*dC~!j1(wPKF3_oB|Q#I29tuagqggEXZ*(M3CbYh#<$Q5J8TUEVN@mj*}sR z9H&48IZlNLa-8JRb}YzoGDKev?M5FtQk>sB!wW=^<5Y+s$4QQ~V?mCSA%YyIKm<8X zg$Qz-gj_oD31+F_z{ob-4ZVWM)JTsuru zj#FueiOO+m?a-(W+D&f9k>jK%$T76rr>~t9PP0o!c6oAhnq?Zb+62gP3XOW&gmL6J zrFNL89A}euh~+rxi8AF_jC$1Ma-2olVWM)JLOV=Uj#Hf> zQ<|t8Cp}X-OjM3jYKMu+aVqUFQ8~^=?QlabuLI-Aacb=_Q8`ZeSUKoTI>I<|oLW0f zRE|@eB_m8!j#FueiOO+iERqpoIZmcgEXP@|(M07qm3Ek@9A}euh~+rR*)rw!$_qJ8 zrcrynh8!o?sO@#cq;M&J+sKbEZZ74eMr|+1aVm}4UXbG?=g2gASNX#)*{mEV)ed`w zcI~UrvZw>(IIFb7qR@_VoKmBv7UejbG-`W6j+34%Q*L`fjGk=Mot8EQw|U$N z%{^x_we1BtPO4Gc>y%?duP=?9(e^q@qo!AT0*oWaIZZpna-2mP#d4fNqgakpYZS|I z(#Ojo#d4fQ8nw@lJC6^C^!<^&mNg5JYZS|IR%;Z?aSDxMInG9nVmVIo1eswh$H_Hn zuEaA>ZT`8z&qhAg&Tzd(u^eZEM(uGyj#FvWJRQcB*m2z*+8y<{ zB>Cp2v(O?*RQj_`*m7w2)w_q^_6tA6oQw>$hcPnT9>%2ZFh=AsZfcs%Ufee8mY_S7 zr!_=Y;}`Qno5QYcNVhN}-J*rU&B2FK)5D64Oq%rJ@VDWsLdB80UfQ%Cope)po(|s; zo?w%%4_^o*!#jk3ZaV4Z%^yRJW&tOUP8q#1{B_FckHYU$n?DYpwlMJ7zYBjHJt_S0 z+f)9yb~r4Caw9`g7#f;bar(&oSMfMf#Ix>iT zhh%lpCO0C1^alx~KQ?K{{k)F5OETk!yN2q|_;tq^&+s z`g7?C-AcvMA0&|eAc6G9ChfQbr9axTxw)Y92MMGTVTSo(tm(jO#{{vd($ z2MMGR9??llCpiIMN?&A4`9bK>C9O(jO#{{vd($ z2MMG`>g9Oqa zB#{0ff%FFnq(4{4Sr|)ykU;u_1kxWQkp3Wn^alx~KS&_`LGrY46&XEg?KaJ|WF8Vo ze~>`>g9OqaB#{0ff%FFnq(4Z~a7FA%e~>`>g9OqaB#{0ff%FFnq(4X?{Xqih4-!a! zkU;u_`>v(k`>g9Or_RdyUme~>`>g9OqaB#{0*&5i@<4-!a! zkU;u_1k#_?b{t55kU;u_1kxWQkp8T(<3Rd@1kxWQkp3Wn^k=Od2htxTkp3Wn^alx~ zKkMu`kp3Wn^alx~KS&ld*HD%ITxG|B^alx~KS&_`K?3Q|)9pBr{vd($2MMGAbI1k#^tYy#;I5=eiZZ~H*{b1jnQK2)VY zFR%%uKS&_`d7CcO70_o3-Z35{J5=eipvwa}_d5KLR{duWPApJoC>Cek-A4q?$ zw+W;_FSiM#KS&_`xxw~<^yd{ef%Ip+O(6Y20_o3G7$TMg15CcA`3`tCA(jvGFAy3O{1 z^alx~KS&_`d5f(E=?@Y}e~>`>^Hy68(jO#{{=Cihf%FFnq(4X?{dv2sw%vYV-G2D( z-I{ePkU;u_1k#^(*lLjeAc6Gfowg68KS+)X%|?H^Hhg^-zN1G1>Cd}tHAsJuK>C9O z(w}$RYL_+FP?i25f%NA+whyE~NFe<|0_o3tZMEs)lk1-J2MMG$V5>p;g9Or_ z_t`$zHrG&<{vd($2MMG<@3++;{jo`V4IM}NqwQnq&j)0TSo(tm(w`5SK2G|Bh|(WK zl>U6k7NqnC5v4zfDE;}cElBAPB1(TgVteh^JbFFp48#EQTp?*wil&8h$#I*^tI-b(p`scX~#-GVGC0FgXn3Y-RSN^celN2M3nw~(iWuj z2N9(|mF-3852B*E$o8Z^h$#K}lr2c<4{ve|C=ih8EN`DYh z`h$qlpU>EWuWO#LJ?Rf3N`DYh`tw;^kkTI;wU^v)hQr>R^yhO@tNnMwl>Q*1^al~8 zKZq#(K}6{fB1(S{QTl_3(w~2~$3^K6B1(S{QTl_3(jP>W{ve|C2N9(|h$#KJ(;gS4 zKZq#(K}6{fB1(S{QTl_3(jP>W{ve|C=kxZsDE&e7r2WG4=k%d>9MD{LGengBAfogK z5v4zfDE&c1=?|jo!jX)gJ#@x_%?y(-*yEz~2N9(|h$#I*MClKro14pSPx^z1(jP>W z{ve|C=Zp5ZDE&cnOmo@oNq-Pg`h$qlA4HV?AfogK(FdB#ZcqAyh|-@g+2f-02N9(| zHfk@s<4J$CLm%l6B1(S{QTp>`nRg%Q4$ zI~Jush$#I*MClJAN`E%mu_*mPMClJAN`DYh`tvnA7NtLkDE&c1=?@}Gf4*+VqVxw5 zr9X()>=&Lt#n9g2hn1&|)QBkk`Gy^f(jP>W{ve|C2N9(|ciFL;58y^$H1u!n40A-3 z{ve|C2N9(|ciXX=H%_B39h!AWvl=;~4b5fuWkaX6QHhAsA4J2=<*6tA`KBF<(jP>W z{vdjMbJ^`le-Kgn^DR3Tr9X%${XsQ*1^yfSFxG4QWMClJAN`DYh`h$qlA4HV? zAfogK5v4!>X^)H2A4HV?AfogK5v4zfDE&c1=?@}Ge-Kgn^Idyfl>Q*1^al~8KZv$# zJ}&sk&{yU(m#6iJ(lkUp=?@}Ge-QmT{ABHz^al~8Ki{**Md=SBN`DYh`h)1s=Gywn zp|`Z|q4kI;{XsQ*1 z^ydfmxG4QWMCp%>+RN^E(jV>6NBUFC4Ejia5K;Q`L)(kepZ~HEr9X%${rQpY_1)&h zvnTyQMCs3uZ7)iH?y(W2KZq#(`HAgC>CaDXMClKrtD9%|_lLgN8jG@@*68(q*mC_U*9B1(ULYkN`pgNV|f-`QT2{`}rXl>Q*1^yd$@7o|Ucv=OC0h$#K} zlkG+64CfM6MCp%>+RN^E(x1Oetv=EpM3nv@qVy*@F=>8HZ3|NRgNV`}M3nv@qV#9Tjz#GY zB1(S{QTl_3(w|{F)-S_fMrRIh6aH~+cyot{(jP>W{ve|CXT***J^Uo(nDhq`r9X%$ z{XsA9M3nv@qV#9fjQ*1^al~8KU>+cDE&c1=?@}Ge-Kgnv$Y*-*5t4n^M}8EO#56$MClJAN`GwB zUUtWm{%j*N=p+3>MCs4Aw%5N*3iCdCczyWS?BP3v={BPD2N9(|53{`}{Xs75K;QGgY8A>4}7ksH4RUPp7bZR5v4zfDE-;n_M-G>9~&*q!dOok-un3FsaGPR^k-k&>zbxl zPx^z1(x3foFG_#*w-Kd3h$#Iz!1ki_=Rg}#`h$qlpMz{KN`DZ2pt(jZAD$O(GQ-an zKEn1od2)!JI($|er3c%H(jP>W{yft3YA?HGsMh`@!=(22(PZW^4-3Pr82)fOO!6q{ z@Y3+tnfr&&zD8FLH(!c`n>a+2{ve|C=MYW{ve|C=TKXa(jP>W{>-wyDE&c1 z=?@}Ge`ec)l>Q*1^al~8KXYtBN`DYh`ZL$|qVxw5r9X%${W;7Qr1S?7r9X%${h4PA zQu>34(x1a^FG_z9QTl_3(x3UZAf-QuDE&c1>CX|iAf-QuKG9ruZy4U`l=d!Uf$c@< z4Q*1^al~8KgZj#DE&c1=?@}Ge-KgnbAla< z(jP>W{ve|C2N9(|C)%+n{Xs{yikAbMYO+3iVx5FOlHc6-tvM3nxVYR97V2N9(|h$#I*MCs3I zb}UMN5M9<>k$ch~M3nv@divzh>+8cupVeF(($no&l>Q*1^al~8KN|Is{+uCW^^yJ{ zqVxw5r9X%${Xsw8us152LWL-W{ve|C2N9(|h$#I*bZ>Kk?MZ(SQTnsU9v7uQh$#I*MClJAN`DZ2zPZ5u zb$I=`?adOR3!3w=C;dT0=?@}Gf6lhYMd=SBN`DYh`h$qlA4HV?Ao}8@a9lm<527D6 zQBV4Vh|-^P>~T^0W25%Ic0B2icIYGhK}6{fB1(VGmC5yy{ve|C2N9(|h$#Iz&yGdu z4`r$9vM4CcnwSob#<>z?!n5v4zfDE&c1>Ccnx zSgXQcM(2;b{etGi&Ja=hgNV`}M3nwK#g0Yk4F;2M(wtp<4J$C zLm%l6q9ptplm0B0c~4mSqa7wJ{m~8+mi}mm2}^%2l4F>#^hY~PSo(9Zj4)y8k9L@_ z^yd;8VZzcM?J!~Kk9L@_^hY~13Ws)++wr77OXL{ZZQ<88w;ny|k4CKyg3=$2dOC>l zq(9nW!qOk@&`0{SRHocV`lHc=r9awX!qOk@&`0{CQ6K5gGMVy(r9awX!qT5hWrRM` zAC3A*f0o-`l>TVcNBZ+r)2qGAow-=PtQu~=teTw6oFDeN7`=Ank`RP~A7>Co($KIJ0+ zE#q5;!UOlpk=;WOKDb^X2fay07*G169VRUOSt%n-So)(KCM^AFZX&|3sePnB8ugL> zXf$Ezk9L@_^hZ1Nk^VeQrrch6DgDu?y)S{b{K^hcw%*9FZ(Q;j@tN%IuTHR>b%(WvRw&iK8dOM8Wlq(9p9 zme9gUe>8f<Xw*mgqfsB}&(mdweWX7cHCJLM{n4n8^hcxixG4S6sChb!EBzVT zZfO7M+iyKGeYfe`4b7Z7BkaRByi+nV{n1+=x%H{r2i?qm$<|vR6Y}7nkw1oil{NWc zfrb~E=08oVsRty@e@3?-8kxTJ)=l4`@YiYE_6jWst+$fDPCj+}=C51pFyVw68aj3R zrpLB>hdQ%DIQ`I}$L!M0;=o;+iDf(g({Z~rO&&HmC~&&j4euNr5%YRuG=JSL{MDp0 zB@IJ1>GordAG6C*Ve_CJENEIJ53Pqh^pDx)q4k*H`7!ns(Pv9|icHeeyLn51p8LO_CGy2h+lpDtN@gQ+DVt)3*)34~0J` z&EIFOTeEuB@)eg{v2MxIr2Wek%P*dF=_QxUx_ZI<#q;MKvU=%~%Pv}b$Q8?1th;*F zyh9fpdN`X)-&q$gU%Mtb^w3#{9@_mL{?PpYd1sw<#<@vy@rp&OS6;IC(xodFA9wQH z#TQ+5_1r_lB{xadtX&d}XNO+aOeXw!$6)zUT7S@VZv zWZKZ^jiXlu72EKX_2KuS^;1UQKYYmcqwAW#Oj$eSC!@EFmcs|{^r~yGz4evXURyT* z8<{qI(9mN;5dLputI;=%mZNiS9sR@TzYafg`{76K*c7{?`EB%D&F?}+uN_09x3qsQ zo8L#)jlLoLcWBCKQ$}`r!{{4rsU4aI|5&LVwp^+0U8(=U0q(fvO8Eo)AIxeCmfC`A zwFOIs1Kd)lXqeTl_7r_^Ec=7=yn1lX>cM%oZ^2oGtLU4z&?)-R+1|aJP2|Pv|NPlL zbIZMWZNY2%j5mzla{KUbxS@NH-QvypU%th=^hmkI+j;`Gc(*=ui?@X?ng8c616%O9 zy9G-3{uGyhRU|&+%?u z`TyZ2?~TI;Km5k<`JMdljqT@nXN1o)+E4PrXL;L(&+^_fdPn;)Uic)h`~MwBUn)(y zhPSqVyEVMW#AkKQCx4?a2&HaqKD2vf^IP}%-)Q?W-{`j+GV+YE5Bs)W78;jLhqhoj zdRtU*hkvwSQ}&i{C|h)fw`|E7c54~W@E<+Xa8&DTSB(c!85 z(6hO{Wov(6?tkxv^g;hzX+A0J?xNSMy=e8?W0x#heO&uvmB+1H7JjO7&f;?xEL?p2 zV^2OTxn%k3OU}J)`LeYwzHrVF^Eb!m4QPM(06u>JKVkr1Fn}+N_`G?|Jm<_#7Oz{e zZq3pqbJ1e%;tLON4L?puUNWb zrSE&#Tq*8Wr#EPSzOeb()s<`PO3z(<&YZ)$6&;+-+f2X1HoI5U?D&x# z<9uYtI3L+D&PR5PbKE(LFPuBC&$wfp~{<8F$cp7AA|=T()xc+KbmM z!=oQ6&RNhbR8(-z!uG6)pE4bf4n*2V2O>N=5aENyjSfWG4>;)#YmQ;SiPdHUPOLT? zaALLDf@Il>i>_RnTye$fx#54!&uWK@N^^zL3rqOn?EcrBxl&+V_%ZG|^B1qh!iQ6+ zeWGw31D(5|eLMznu1jctSa+f?2v6=SF1mD0^Bn2(^W^RsJf}TLx%OkV_?VCJXihRV zAM>&He9QxHFJckZtIy)aE0-;E%ha6l-GXpZ4eu^_(X~?AN0XY{j?OY+P92U8t-}L~ z#D~z~q zFuy$=;%@Tz#z8op`@WpEm}}WwVOq?!>|w5D5A)pYVV?dy9IeE>_DK{^{0KeS`~nSF z0cjuA@18(mJ)=5(&a!5jvs)f7O~>Q4>3F<29gkP1v##;*6|9oI9`Aj$H(8|=cLF|JX+V{KP>EURW zUF&F)-K9LbHg`BG(%}I`c%We>UF+z0y2~%ug1dde-8nuU@`(>Efj;miP-` z*Ed@24o7Qo*q}x2c+|e{U41w{;n9%@j}Aq6^ymwZuP%C%Wl#RGaie+mdFqDNEsf^b z(rAV)jpo=9hny>iXrVaiKaEnm<+KD{@E=0lh{ z1C!|E9JyZ%Q(1h;W#J3oWL5J)OY@PAyaR3DeKs!`3+?G(25Ucx@ux$#9?@CS;plYe zaCAB>?0@s$;iyQ52Na1O$F6nsICeOC96QX%F`Nv2Z=J^Yyky;qHOntuv2;lq)^@dD zBk3JYO?Wgn;nC!Tb9Uj(Zdb2)V8hF3^JXl(<6U;e%8S-w9-&?L!XM72exE!vkM3cE zqr>}0eXpzCwU~z+hVO8nx3uP#H+pN@%ldz$qHk&KMXGtO_qo$=aQ7Z%@CvxgU9S=! ziU#*NV|$oqY!CB{?P0D{b5aeuF`lar^uWvYg6Q1n_kOAwx?LbXZF@MLf7_b#Zzj5+ z|7(G8mKke5s7|~PUH$m^(Q!T~WA(WPfzO%K|FeY_N3-l&N0aPuG{+7{Q|xdw!wz$T zVc8GU2e#koKj@C9`@nz?VRNwUjc$BYEsl<=JEfu`9gd20ctDY8X}Z=&n7jK`Yolvp z*N7_;j-tD}@AGL$`EUQ5T@kKquXS{Gbu-~%hSuHXBr2kBK;&X_;*v|3u35A+e9hH;3>{t!+(lJB z28|E3`@G-r_IcN5A;&luVT^MX8a}tZn!u>-6#2_ z3$G%*o3-Q2?NxgN)m@4m;AI~syhxu^!Fdxkxj*e>3n}zmZIb@h(cfZXcdzeG^ zFo*2n==AAoa~*rF!{_GVZf(s)S1nz9@kMKv;<*+Yb@vxxt=snj&D)6feSm#Njq+>WQ7O%RmAJo1H>+@M}Z$|NH-CdjFr`dq(p}d4dbM5=m5{^N5{4^VIO_cW0AJWZ*ZDfw{LU8bFANB-8)V9n1@dKW_L4vcv!tY(dy_M zWc#$~wO%;*oek#kpA8q^jonEdb^B?1w2dU4)(C411S=bgwN7CW=K>A-3yVtX* zNQVa$i5H`-9betLPkIMESKW(f^Td}9e4>U!?Y=Q}g_}VEzr#Gru;6m5@7ARWx|_`C`1?Lz#@cfQ z#&|UQ_GE}A-_mIAa^kqxy1q}u-UAnY%(!Koi zX0wOG>u>Ypj%n|c{_q|gvk2?bJ(=Tm?=FpwYvt(CXr~dKNBuv7ZE5s4v@}|bmPU_5 zOSu%`NLm`rtou`_UfeTJ&%QSUjUJG9=dQT)jC z`zR$mVDfo)`*Vfi63r7pbIwa?^l-GbxDeVldN{fh)=e`kgv`gD-b$lIYuj>ep>6jH z7vVmW3ytN2uP~41!;95RFIp0RcoCWnc+21K$B)7hcbL=dVNR@v`550&)Rh> zmLA={Y%RZ}p{p;s?C7w0^C9!+rH5Ra9ujs{KKhb{n|<36UdEcm3oqaOe%PhGm5-ix zEsa*FrO^VlG+LjQMyFs)qeW{e*DO4!E#=IVa%M_7Go_rF(#^bg=<~AQJ*x4uq4%>t zi?0kDRpa8^Jm}JGz#FNtH__b#)crhC^x0gPvAijb)mWQ@2jL5o@Wx{4n(&3AyhrnMj^CkmcQ>3^vw-qm&mLh9$HU8;os}z=^2c}L ze?irKFyhK~@3VMTh0*%GhwI^J%3bUEVPl7@&p6|p-cJ$Pp~7R-J()RF4@c*3*P281 zT1Sss*E)L8Ivg!phsRzRqpNNhsQaKhoW}!yZYjEPmoB`BG^-|0bU8EJKWuBSKGB7* z?ZSySCqe&DNIJ|V?6r=Uu+K|tv$8E_ksdyL><-MougXp#9Dg`{?lZg&T zwL2Wu?r`_Wo^)zZ(z|m|zSiJF*DRHOtlIZ;!|pSIvCq29tBC!crD?#`4wc(?CGHie zS%mfhj-L!IjvoX$gZ$C7Z)&3=-6c3GGT>Y44oAv^yLf^l-LMK}?9_a>V^#p2hAzCZR93ikc6 zr!gL#iPD~r^jQ1oG3{<|qqD2S(SzDy4jRt$4s*;Nj?S*G^?;d#6{OGIAqNA1XfWx}?y+Cx6iLVawT|#uG3g=q44||{2l7@Ge@VHLL<2oJZ zVT{$`qc+B)$7k#_9{b|fbm%@ui_b&t(fb}YzM*Qqi5;}^%@VF!w|Lp=rB7RY@+r^6 z(;}Q*-Mws|QQOzr__N4v8F;v%jC`RIJuwD+BHrP{``v5~xKU{D1Q!hKFt}7S)$X&$ zg#%0RA!{F*K41QaWA2v1EnR5e?_RAb)AwtDu{r}jIBD;)nhEqhMENFn&`tZien;8% z8C-4tz&=L|O!_`B?KnImnq}y&Q1KJ50qWhc$P3!KTIJO^{`=5bsANr@d^ciq--n%sLY#-}4;HJITFFLtef>7 z@NJXuxJ=hRer)^g_0!bvcwDFBgX(aR#_Dhp#&|g8`#vXns}~w9UU|imW)qBXlkQLN z?nmF;^QL)dx_{vBf@au0uY5hsgAHZc#&MDEH7R;hb(lp$?GAIn%oL;3pli&+!< z-Cdx=9Q!U~coGfz2L;{I@gSOE`oF#IaC8tI=7ZiV5tJ zc83=vD_5-w-$`8*Zmpw#gxxiQNtJ}5anH(OAb~!kaK>K|* zs*O31USrN$8*>`H#sg{$c)1FXZ+Evd_%pID=URl(x+~Cl-J(V5x<#wf;pjj+934`J zxd7oj>HiUCpVwDy%kh+QxIp{<`-3sggBjydb*VF`K9_i`PIR17CtBP7$FH}c{hM== z;c;z?aEeN!iF8-E=qcFYXjwYU0mD&tm)@vIhod4L9#DkS?$wSKwkr}HPKUWpp-A`P z7>k4@kjLrJS_V{?m(Bv>nbZXsFS>;K$9|&ptWluplkvoRxCUN;zkx z(L%R%qa$f4&#*A#J~LCwnJMMWlyYWDqd9c-aE$YC#yAgWj7MjqjLYR6 zYah+C`>_sQ`X}?`^b6-9) znQ_C?KJB+pcJ9k}NYcK1$K;^Ce5d5kujp6*;YqT-AKy8-tS{dsDf;qVqq#R=B-w2M z-+chzV*uZC0N*R(L3)@>N`CWqA8ZrAP!g}(E`bjx+a{~rJE?8NxR@{wm>{9Dld)t#&%L zo#7Oj=jVmbaQq(OJ2^fy+#T2Mj_)CSAK}xb{t?1wJAStCV;sL+_#)wYroLGCD#za> ze7)nJ6u!an{}jH_@jnUQVIj%XvOW~>TvxHZ|cMyK1@LKp$!f(*} zJ9qVG2!F5e*}{W@wEeYFcqaTw!ha>a6n>EKZ6B46V z*ZE%|`~>06^S}A^a^bn~w53V%TH%G`ZxdcR{t@Ao@J#A_MtHJoH&5kX7oIu(L*a#R zJmA=$_$wV>DEwx}&l3Iy$Cn9zv*XVZ{tm})628IlcL@KmX|@xz3F$MMsI*N*4Hf8zMlh2QJ=4Z?rx_-(@f z?D!qR|K|8NgiqS7JAcAo+h4yBzLn!cQ@eGT;rPzNcXE7|@ZB9hN%%gFKUw%ej;|Gd zsN*jaKF{$t34gTXw+qi4|GMy#9RIoSGaOGwyLC9n@tuXA@Az!tPjUPd;Y%FPg+JBt ztA(#}{1w8la{MjApY8Z3gg@W$ZwkN8@m~qQ!SN~K1-*G*+~oM4!e8t7eBq_zj}`tF z$Cn9zm*dYBUI{-)&fA-WC%bp&v+{Qc&m6CW7mj~Z>pOn0*58BmN5TtGvksZ#y9zHH zpCi0-{AA(Do~-|5t?&3+t?&5Dw7%nS)cSj|{>QYw;~TZU<3H8^>@A!7%#-KS* zl6_hKAmN$gnef8#^MzNAuhjbcvHpv+zT^L*^&S6^)_45NT7Q4mzenpk{(#nZe8=!s zq*;f`@ka?y4q*M`g=daGQF!6_8m;g6%e4N1tp6sh@A&On-|=r~eaC;P^$%kGk#NJ` zULPFaO?V;vgK{04qwOEj)lq)3@Z@0fCkw9}U!(OO$@VYN`i~+nwf-UGAJO`be?{vb z%Jx6j`m@OI*ZQ-`w+l~+_Iz;sAmPOvwttN9Y%clZg(ruRU#aySe}UGY$M&z)`iGOh zPwUSozfn|YRHoU=UuMZ2!_Y+<@ex&f?(QJQ?@a#zPmNh@S*`yV^6zPV$N!-9Gq&GmJ9)kwOTMr0kLE)<1>(&syK{88f?eC{AVjgM??Nk!Qk_)5*^l zUOB!>>z~2)*J=GT$xE&OSn`i*ec`!W$G##wJ*#W4{Kvuz$L|+jJ3eE3IUg3W&H=(p z$B!1CoXz&<3C|tBTzKX9HNw+#Sm!mu3&-ChymtJv!n1Q(=exp7$A2e0IgjnP3LiK$ z*N5Eky@gkfA0a$_9P2z*c;Wa`;kDz>7M?wxbzUXBbo?E{lP9qKr-bK@e_MFv_^*Yh z=d;d~9p!o9_#VP*$L9&pE?}M0g_n+BEIhf8?Vl+;cl?#YE63k1JbfbTRKg3#za_kO z{MW*>C$Y}dow{`>9p6iM@?^F@LU``@S;8yFmkCdw!aC0pUO4`0;kD!M7M?9;ozDs{ z9si#2Bxn0S2+tkgHhi_v-ak0Lzwq=T);U^u;rQc(*TPSd>)7SOvx~br%C8Y#I{q5r z$t7(6ZsED(|0cY0{5!(aC9Lxs;f3R);RDQO9cst-6rL?*oq57b$4?iYEMxnNh3Aex zLwM!*dg1A%tn*gkh2x(PUORr5@a!_y`K9pE@!{}AOM4%+ob7iJo;yBUc;)!X!qca+ z&QpXJj;|A5JAS?J>~hw5lkn2-=!c)gH;hE!45S}}}LU`f$3x$`Czg~Fd_y>j8j(G%c0E61NEymtI0!jorm{-yBL@s9}4 z9RI5D-0`0ZFC727@Y3;zhYLuv4wd7xgx8LrEIfG@=f7BZ>iE-zXO6!@crJXur2BQ7 z@Y3>a-0|uAbn8$$zQ6F=@uP&N1?!(H zJa_!5THo<&w7%mvYyE3j|Giq@@y}^}$G@lb9sj-7e?IGPy{}v!9N$NH>G(q7wc}?C zPp@VD$>{k zV~zIL@xo_2exdM1jz3NKD#x!AzTWX$gl};CBf>X2{#D_d9RI2C886}d|0aC4<2xSE zt-~V64-vk~@e_rwcl^o1H#ojd_(sQHE_{>Yw+Wx|QqKPl;j?+V}G`0s^p zbbQG-5ab;p~%p6z!RUOPTdc=0c6e}?e%4dhFN zSB^hhczz4p-y}RK$=@Zsbo?{Ivs>Bzd%|nS|0uk8Bim0uM9%*=kslzua{L(K`J37P z3Br@x$X5w39e;`N>@95nM&Y&Nw+k=c%J$z7p1zIzm%=N@Cmq@yZ~k_+-$Quv4)XcJ zOUKU=p1qUpFB4unevRt8(9C@THowjD8JN|2}@A#D2 z-8$5c?;$*WKkLsEo;!ZJ@Y3;%wZ7xe(E1->{q)%uQ) z%<0ylbbMFgwc~SyrypYdQ-tS^FV^~wU#0aOf4SEGFzdfr>pOnC)_45tTHo=XYyFR~ z{?J^xJ~+OM@Y3-)!fVG*6`p>S^)J%;jz2@|JAR|qcl_;I|6{EGDXs7Le`tNjf1~vs zpLUpBA3o0ddkfDUUnsnE{A}U15~j*rai)}i<$+wUSgt;lB!uN)6%uJ-*!{wcP9ityyqt$5#r^H?sYUgePAke}nMS@ed2nzRvbv5nem~6XC@-*#2+A)4RxbI-*;L%JD;m z=XbOHNy3wFl0QXw>G)N`vv0Be4Z>^3-y*#DHrszfc={jY-xOXs{wv}6ci4W)0y+Qx zv*Q=ab!>Oxx#M$%SB{?|JpC@~JVkin_*&t$<1ZDSeUEiY;icmr7M^^c?Y}HMcl^h~ zE64vLJpBRd%v{*5PvQ6@gx8K|!n2xno*=w*e1-7jhiv~s;ko0l7hXC30paO?vCbES z7moi>cEzymI_<;psiB^L*ij?f@A@4`#Rzb`!bDck=+c<%T%N6PiV@qLA-KVzLEg%^&WE4+66a^cy}S?5~erQ@#? zp8SICKOj7J{ENaX$A2U|{Uz)CMR?)(_D6N=P&@ue;n}^cbG-1<@h1vT?qmBk!gI%8 zCcJX|O~TV(b#?T8<;S#+<6jkCI)0Dv+VQ_={a>^Gc1L&XkUM^$@Y3<4h1ZUsD?HuA z`cKvRj$fno9lu%YJN{m+{~Ol-oYr^zds^S|-)nuxw?3v@hxE6szmM?T@rA-m#}^5& z9luoT|Bm&atMwg!wbpn1U0UDqf7ANEXZ`PJeaC;J^&KC5j65$K-%EJ<2iBi2Ja_y| z;icnCw7%od()xd7{a0#z$KS5?9j~;$`T|5@wb&-ydMU)!H!ar_|RrQ@0KT6mgt zzaB3<`Ahgi_?5Q5C+&|Zw%`9c{(NblIexS7-0}AaFC1^)b~W`&$G;=Ia=f|hH0^80 zrykew;icn4Cv@vjIli;-+VNS!lfQHRCkam-f3on*@pZy;$6qeIaQrsmrQ`o9ymI_* z;kD!U2~U!6VuW95`+Jg1KCxSe)bTxpXO15(Ja_y|;f3Q%g_n*$M|kDe3$GkMRd}*3>t8H9bNpFa-|?HY zzT@u}{xjj*v}b9Od|CMK9luX_GQFFRw%_*j?zmFni=@sW!dD63LHMb{OW~Idb-{A2 zGo!12p|pRY@IrVc{5Ij)c3u1M^;!GtQ`%nm^}>Is^=EeN_Z9wt@Lc$L!uL2s&RgL- z3STI^7M=;eKzO=+SAT}^b;2{@+WytT3)lXA!b{=dY1RJvn($4+X9~Yhc)CM3uD0Ly z%x?axglqdp2rq>nBy~;`ey8xQgkLJWcI~edKDuK!uC~8Tcq)9hJieb3p6}GP57Tac z{YZEvT-#52Y&ZX8XSUy4crIMqA1A!rh3yw>on1Sw>+?L}i-ha?yiRx_Jd^p~F1*^U ztE1=nw}hv=cf63}`jhZdcq)ARv*f%IuII^N!Z!+^B<;@LJ-TrZ5&kl5 zFZ_Dp?-X7%Z%o23J^%k*cqLrd=cmGF?A5i`^%)5V-n+jQztM$L6^@VHwpKE>L^JG4g>e~3*S|EDm>Y@ ztFP^k6rKs!_D>L=yY{Pvm#+N{!Ykps%eZeB{$1hIg@0D~CfB|ezRiB!JhlB_g{Q)` z{=?7hj`t|n{xIRE2_KPh&lJ8$xUT1=!VBU0x^s>2TKH_K^E%<_{@pzFdGsNzFI>-` zuL{qF&y+ep7rt7!UOy+D*Bw_OT(6UR3E$}IEEJv`!1L!^;kj_VK3pk$y>Ok+i-m6x zuJgZDcqM!Xng1PuZ*D)&>X2?e`$_w|!+)FW#wOuA3;(t7(L=lT(}ZswuDeb9?HoT) z_^ys0FMMCe7Ym;)T+j1o2w&v*tAwv|{N2J|DtwB}^Yg;jJARMwe{y_ixI3=bJHChT zHwxGD{|Mn596ww5Cmg?A_(tJ-$~<2ze3RpE5v{WLsk1@2KEHH7 z&r0}{q>k?Ana=6vqxVI+pXVasdfw`Oo`vv3rH=0Bxk0$jU-$F;jBtIu)BQYa;i=To z{XCPoTp!)fGj&||^UQ>2Qb+gmEF9PUJS)d_KhNZ_Zd^UjbwAH3j_ZD&+c>WKdCqiP z_w(G@@v|m(kNcjE>wcd5Ij;M89_+a8=Q-PP-OqErcQI6|=p2s<^`+1(?xbElq zSjTlg&+{DD{X8#pT=(`+2^=aox}J zrH<=wcaecU<@LtQ^<< zJU{2S?&tX>$8|r?uRE^$d4Ah*-Ouy;j_ZD&KXzRA^ZbS5x}WDJ$6qnpt@9rp*Zn;I z>bUObIXsWo0o~7Y)N$RwccQIwcb<wcb@&qlatAH zKhMf>-OsZ)h3&U{n7l7Im0b7pOim-${X8qjbwAJIbhg+1JhL;%bwAJKOmf}NvvT}> zGSA|%Y_I!yW@nM>exAu9a^26fa$NWGEY4Shg|pbOwJ|O{X8qjbwAJIJhs>U zJhR7<>wccebD&&qM#&$D;}+v|Rw+4wccali6PP^UR(?uKRf=i^+9A&&qM#&$GzcUib6NE+U^1KEP?-FDDn1 z>wcb<wcceWo)ne zdFGDmex8-%x}RsdoON_R&%$xt&$D)1_w&r2$~wBAXX&`^=b2p2_PU>E?zryfSvjuz zd8Svej_&7KIIjD7){g6bp4pYGqx*T5j_ZD&$qKgD{XBEWbwAI_aox`|UCBDSpJ(B? z?&n!MuKRgrt5`?(^DG_L{XCPWvAyo+nLDogc~*|=exB)S*3tbu3&(Xo&)RX_&of)Y zI=Y`{>A3FanXF}d-On?3T=(;=9M}Ck({-$)`*{|Q>wccK-On?gs5F-OsadT=(;=9oPLlvuCr8?&n!LuKRf=&tZGr&og&i_w%eA z*Zn-x=dzCO=UF(e`+3%m>wccu^H@js^DG_L{XCO`?R7uT+;QE{vvOSb^GvT{9o^5f za9sEEtR2_=JhSJsj_&7KIwccei`ZWG^UNLB{X8qjbwAJa#jK(sA9-vvOSb^Q;}${XCN!x^cC>?&q00uKRgr zj_ZD&x#PN@XW_W+=UFwccKwcceD>;AN&ogyg z_w&pg*Zn+m$8|r?;{TO)E^vC3)%}0CD5!|bMFq5W1hl9n>~0bW;$;YTjj%ve+NwJt z*^pqeSvMO5THEnbt1XvcwIW_RR z=XYkH|Ih#Ze8}$mo%5V|=6Rp_?QZtv8{+VJR>a}+tckRg3h@YXnBtEUYBK~~kHSw#JH_GvTgX@)NuaxWJ zpZI}C>etO{eg8)(FNi-uc}4tu5WiM=Mf_dL8{(f(o?W-v z^}khlLHthT6><1H8{+VJX0P@A;qxqr!{=EMhtIPi4xeZCI^Q2Y&w@C7o)vNUJR9Qh zd1kNo{o(U0h{NYu5r@ySAr7Bs_6FY{KF@+Ue4Z6?_&gip@Ofr`?fb*$SrCWMvmy?k zXG0u5&#dzO;qxqr!{@nEIo>w{pXV;(@Ods0htG32arivP-YD}yfA~DdiNohPMI1iQ zIpXkn?j#PM=Pu&#c`g!%&vQ3%_&mq{#?K!<&vD}Lc}@|B&vTAAe4aar!{@n+IDDRq z#NqSYO&mVYu{Zho!{<3p96rw};_!LS5r@xnCvo^ZcM*rrbCEcFp1X;|=Q;LfKY#c< z$BDz|IYk^k&pG1odF~_*pXV;(@Ods0pKX89Kl(moH*xqp$FBGDhtG4IIDDQ{#NqRt zBMzVEPU7%+?jjDK=OS_VJa-d^&vWc8e*W-zjuVH^bBZ{8o^!30>S-#cR!{?d3&2#uXYvS;E7JujK;qy#y z_Z&XYia30p`8#|)e4Y()_&m#Z`g-_0vv+w8pJz=RKF?y8uZPbwz1ws6JS*bxdFFrb z>*4ckh{NYuzQ@L1H_&jUk z@Oc&=@%8X|rrLA(JS*bxdFD6!diXpW;_!KvANBR{d1n9QIeeZqariuokNJA|Jk!TL zhtIPj4xeZK311JNXQLcHU%=;?{j=1A!{=ELhtIPj4xeX396rzN7T46K^#8MN_nN< zkHP1ee^L5?!{^x$htIS8lCOu)GyAgV@Ojq6;qxs1&DX={nZDvVe4Z6?_&oEk`g-_0 z8{+VJmS6Mr@Ofrm_Z&XYnmBx(#W#FCe4go6&*Af|h{NZZf792)=h+a4&$Ik@Uk{&W z)_4w|XH6VF&*C;;51(iH56|KAtcb(snSaaI!{^x$htIS8wy%fJGy6}^;q$DC!{=Fi z$JfK>nZD~ee4Z6?_&oFP`Fi*~8{+VJmjC7J;q%PC?>T&)HF5Yniy!!U_&n1OJ%`V; zA`YKte!H)S&$A&8pJ(|aUk{&W_G8cC^Q?)(=UMFb_3(M7J3NQavmy?kXZ{mk51(g4 z96rzTzoj1kpC){s4RQE9^E-V#e4Z6?_&n23eLZ}h1#$R1YvS;EWU=k~n;x4RQE9^I!Wu@Of6m;qy$t@%8X|7R2H6tckBFpB7Tzcw3n|xUwJ_sKF^x?i?u%6+xK~` z@{;&_lsClT^UU}0eZHmj74csxPa_do`@r?W=UEVk&$A{DpJ#R--v>U=k~n;x4RQE9 z^ZWWf@Of6s@$(~mo(*yMJhT0z59;CbEQrJBSrLcNvmp+jXSToZ51(g296ryAIDDQB zariv5`}zLxc^1Us^Q?%&=h+a4&ojHf?+>46K^#8Mia30p4RQE9vj_P8@Oc)*;q$DB z!{^x$htD%R!1ssGvmg$iXGI)7&xSaBp4kI^fA~BL;_!J^#NqR7h{NZZ9q9YR=UEVk z&$A*9pJziHKF{nyzCV1P1#$R1E8_5ZHpKVOB@eSP-#=4c5MQOdB0i z^e28T`V-%U{={!V|AT%12K|ZOh5p3h^K6L2=b0Vi`@`p1D9@5S;PWhrZ#h}N?ht>G z@|rk&o(*yMJky~vADkCH&x|;Ho;h*&JPYFcwO@8ezdtI8KSFs$e5LZ5_!{L6@%75n zgZ=z3SDq2SMtM&B2IU3uk0>vRkA4gvT~|eX^kc$^*TmuTY>30>nI7WjKiNJV^~s2z zr93ANpJzcFKF^Z)RobT_e!cRVIDDQB@h@n7dT9Ge`@sJBzVeJXe4aUR_&f{Z@OhTR z;q$DB!{=EOhtIPi4xeW_%+DV_&x|;Ho;h*&JPYFRd6vZC^Q?%&=UEen&$A&8pJzJU z&mTU|j5vIrIdS+r3*zv3mc-%ntcb(sSu4l?Ck~%yIzr|N4xeXE96ryIIDDQparivb z=!R+^=ntP~P8>eZk~n;xHF5Yn)5Cp#_&jss@OhTR;q$DC!{?cP%lC)RGbaw8XGt7B z&zd-Vp6L<3KYX4!arit-;_!La#NqQyzwP_O=b00S&$A>BpJz?{*fS*$Q|9}_=b00S z&$A>BpJz?{O7wrE?+>46P8>eZk~n;xHSycg|482-KF^#ue4Zt7_&jUk@Oh@Ae1G^n zbK>xMmc-%ntck_&j%0J$#(*>f!Tz8P&t*St*Ba6F$#onVc7%I`};Ede0}hF7Rs^z;qy!Pu@_&n#7AD|pQ&r*4=96rxlIo1t6&xY#Z^UO|^`Jf&?&s;hB z!{=F2J$#;(@+qAUe4e|NBj4cj%pNc2MLm3;bIMTFW~e1iE`vEe4gn^G9Tm^e4bOv(FZ=yQaSb;e4dSR>pDz9J_s{To&MAi%@yG4@js70sWy;y-c@1&+Jg*}TpXZy1!{@n6 zIrc4lo{Plc^W04wKF|A~A=hn93u{&=R=6^wYOaF!-@Zv@*|bwemOz;IPr6p zKZ*Erl}{;$pYzX@&k=u<@}0y#qI?(euPa|9{&VHKi663$=Ej+_ZtU}{lxMo0=V*Pc z9Q$pn@mVrhVY^EQ!PCSrLcNvsRvKANV}eQ)Qmu@OkFM;qxq&W1qw4 z`BLKWd0s&rKF?PWhtKm`;_!LCfjE4gZzc|(=i7+G=edhGe4g(o4xi_Th{NakQR47< z-a;Hc&(9Kv&-07K;q&|&aritN;_!KXhd6wmKO_#H=TC^k=Xn=#_&k3@96rx|*U0|C zet^&O{>0()93u{&=R=6Y=lO8r@Od6d96rxuh{NZ(j5vIrD~QAA`FP^+dFI67^E{n6 ze4cBF!{>P(arithAP%4BbBM#|xq&!*o);5`&vTCW)%!~hUqT!{&p#p#pXZB+!{_-j z;_!K1MI1iQR}zQM^E%@2c~->X^Lz_&_&ncE96rxlIr1Dn&-66e&*1QR=EULiEQ!PC zSrdoPGo9`G!{?b3htIPl4xeXD96rxBpJz=RKF_q)_lM6jCk~%yNgO`UnmBx(>FK^de4aUR_&iJE@Ojq6;qy$-@crTQ z%!$M2SrUiOvnCFoXL_dZ51(gF96ryIIDDQparivb1-?Igo;h*&JWJy6dDg_?^Gv_z z`@`p%6Nk^URQ_K5z79Um{P(2~IDDSz4?Ks@vnCFoXZb8&51(iLY|r8IOwaKgKF^vs ze4gdBuZPbwFFc3OGp+Odpa;pdR?p${ ztckT&)X}jm}dDg_?^DGy9J$#<| z4$tB9OqX~LpJz=RKF{*`z8*f${8G>1^Gug{4xeXDe60NooYCK(l$ZN@_&oDJ^gP%4 z^hcgwpu8qNhyE|{_3(M-f9!dM{(s{6jp(nu&>Vx$Gb^PY96ryIIDDQBariv*7y3T% zc~->X^Gq-D_3(KX#NqR-iNoiaz1a7G&$A>BpJziHKF|Cmz7Kq!6><1H)1Uf!_&f{Z z@Ojq6;q%O1>ifXwSrUiOvmp+jXZ~lt4}6{#arivb%X~e2o&|CEJZs|cd1f#7ec@$=@OhTR;qz>W!{?b_>HEOv zSrLcNGhOBD;qxqr!{=EOhtD&++V_Favm_3mXG0u5&wQuv1D|I_96rx?o!RML(rSt)Z&$A*9pJ#fduZPdGAP%2rO&mVY>{Y%G ze4Zt7_&gip@OkEc<@>wG2Lk~ z;q%Oh!{?b3htIPh4xeX996ryAIDDQparitN;_!K<8~ps?^UR3D=b00S&$A#7pJz!N zKF^9ce4aIN_&gip@Oh@U`uW4>nGuK2Gbaw8XF(i3&yqNNo)vNUJZs|cc{ar1^Gt8^ z^M}tfBMzTuP8>eZf;fDhC2{yXE8_5Z*2LlSY>30>nf}htA3o2FIDDQtarit7;_!Kv z#NqR-h{NYu6F;sEmeJ3r4e>LSr?>n0!{?b1htD%7ezo=~l;iyd*DJ4x--P)P|D5vd z9Wo#E`7ZhshtIPj4xeX396rzNoxVSOo&|CEJS*bxc{ar1^UU7m`@`p15QopRA`YKt zL;SW!%Ilcz^8MlSEQlX?q<-Bb{wU=Q@h2$H-tGIJue>0BG5QmKA^H=)7XAO;_kS1q z6aNJI6TcPxiQkF-@A3T~aFnb=LHtPN74Z|5H^k3Xp1t>!Gws@Okbg4xi`PKlu5>=Q&OsKF=xQ@OjP=htG2-ariuU5r@xnkvM#w zyNSc+Id+quKYX6!#NqRtA`YMD9C7$OcM^xsa~E;=JQs<>=ee6We4b+;^7Dt!bDTJQ zo>Ro(^PD3NpXW~E@Okbc4xi^DariuU6Nk@p?8AQk@Oh3ChtG40_-y+N{ZY=$5r@xn zCvo^ZcM*rrbCEcFp1X;|=Q;L|e*W-zjuVH^bBZ{8o^!<1H^UwHt_&gip@OhS>_4V+1X8-Cre4aIN z_&ke6Uk{&W`kd$Rc~->X^UOc*>*4ckh{NYue!X^K6L2=b3%W_lM83 zAP%2rMI1iQhB$nl*|&Xv_&f{Z@Of6m;qz>W!{?d(r|%D+XF(i3&x$yFo(*yMJhSik z{_uGg#NqR-h{NaE5Qon*`>yW~pJzcFKF^9ce4Y()_&l@k`Tl!N>d(c*4_96hpHSWq zhtD(nFW-M1`V+ql{fS?L{>0()%)amY-;Dmmzl#3E??8Xz@OfrG@crTQEQrJBSrLcN zvmp+jXZAzsUv)p-rv#s8O&mVY;&xvTpJ)1!=kR$}#NqSIf9&hw^K6L2=UMLd_3(LS zcX$q;XH6VF&*CS(9zM_X-=4$gSrLcNGr!ZpJzoJKF|Drd_8=g4RQE9%U}3<_&l>;dJdmwO&mVY;#a;NKF{=P&*Af| zh{NZZ|HjwD=h+a4&$GPS*Td(TrBl0|kNppyXH6VF&tfEUX&XyQ|1{zAEQrJBSrdoPGkc)#1D|I}96ry6IDDS@ zfxZuXo)vNUJkx`GJ$#-8ariuI;_!K9W4;f3o+WYkJR9QhdFBWCKJa-~#NqQy2m5;X zJPYFRdDg_?^UMzMec><7n ze4Zt7_&gip@OkDB^?l&;tcb(snMNY1_JREmpJzcFKF^x?Q77r&!yoSZoTR)Ye!lXC zIDDS@5x&ohwZ0<$TIK0szWzPR3*zv3*2KT1_1VLHpI<63iNojF5Qon*|1IAKKF^9c ze4gnMz8*f$f;fDhHF5Ynv)`6JM|ZDgO7M9W#NqR-h{NaE5Qon*%Y1+MJPYFRc~->X z^K6L2=b1gy_lM83AP%2rMI1iQhB$nl*^$0Ke4Yhy_&h7(@Od`G;q%On^8MlSEQrJB zSrLcNvmp+jXLhvj51(g296ryAIDDQBariv5NBREnc^1Us^Q?%&=h+a4&og_p?+>46 zK^#8Mia30p4RQE9v)}Rk;qxqr!{=EMhtIPi4xeXsjPDPhXF+`bT=K9Yo+)pLuTq{p z#`m96UJ&1e{=`f4Cw?vZKi2o(h5p2EL4V>6`V+qk{U7K1!{=ELhtIPj4xeYEJWKL` z&olk5^aqE}Gb8>Y^?ByR;qxqr!{=ENhtIPj4xeXD96ry6IDDSzSU-RGJTv0(dFI67 z^DKzN=UEbm&$A*9pJz=RKF@|Ye4c5UpFez_8FBbLbK?89KSqsyk5&+WnDUbNr1FaR zS;}kTh4O~@^OdLL{QR#{o)N!Zc}{%v>&0&V#7BQEKjJ0v(O=7qctw1#b{ZpI6CZtB zHR28N(bEx6<9`09E6<3-=b01Vq4fpvE0veTuUB3XhtIPn{w1w%h~KU}O|+l158S`- zd1l1n^UR6E=UEVk&$A>BpJzoJKF^vse4Y()_&n33pFez_8FBbLbLIH|!Qt~PiNohv z6Nk?;Etm764}6|Earit-;_!La#NqQyD|~*>&KF^%^XV9NGe4aIN_&n1p-yc5D zocOV4>iQ6e&$A{DpJzJJ_lM6jCw?XR6Nk^UCJvuxdc5xspJz_|cJwC>pJz=RKF@TL z?+>46P8>eZk~n;xHF5Yn(-VAu_&jss@OhTR;q$DC!{?cv==;OxnG=W4vm_3mXH6VF z&-5hUA3o2VIDDQZariuI;_!KXPdWTT@Oj=z96rzVWSI}@;q%Ot!zTux=bUo9KMg+5 zN;&&Hvy-Ji{=Nb}&r*3k`XbXl;PcE^OZ~Xu1fOTA{0impd1j|b{ZY!{^DLCFRSutL zt(<+Hjq+UU;q%N+mHzNb!RMJPM?HL=CDp^{St)OCtL_1x=WgW(D~HcBJ5A1udiXr& zl%pO#&r10*+6O+*Ta?3p1)pa__3(M_Kl(f!UOmE%5z&vUnO0CK)uIm7wXRaLU2A^j^ z_3(LCR1cqLP4)13rt{>y=ntP~rhH201E1%da^xF)o)y)@=ee8e;q%PSm-C`Oe4ca4 z(H}m~O8E+%4}6}D@*|YP=b6?@f7HY0nJY&&z~pzwxW9YJZt6b^ZbT#_zB_j z+)efHc^>d|nJ4Pu^URc^KYX4~pnCW`pQ3ypT?hC)r<7wo;qxq&tCikcs_}n z=aaa3K8c&>Q#tm(c|M7o=aaa3J};8%y02cBc|M7o=aaa3K8c&>Q#tMn^L!FF&nI#7 zd@2u~PvYkJByOHh;^z4zZk|u#hqO25Xg_3|WZf>+b(>ILDbJLjqr6s*eYjP5qx=b4 ze--*~mj2k!?@~Ul9QWO#@?80|w9k)}SIY7I(gFL*{1=sD-#%7(x>(M;O#3`l`M7e- ze~a={mE-H+mC6g{nfAF(c}e^R9of=frPQUMj~v|GDy) z5;xB$ar1llel?4iJRw>xOqN_o9C0bc|M7o=aaa3K8c&>llay9%Q{~|+&rJe z&GSjzJfFnP^GV!1pTy1cN!&c2#Le?b+&rJe&GV@od2XK1t+JoN&GSjzJfFnP^GV!1 zpR>Ndc|M7o=aaa3K8c&>bDQsPo=@WD`6Olel?4iJRwhyYFwFPvYkJByOHh;^z5W@cqs6N!&c2 z#Le?b+&rHxOqN_o9FZSzQ1`siJRw>xOqN_ zo9FXV-`_l+#Le?b+&rJe&GUJg?{A(@;^z5O{$BmQ&OD!&OCNCaeEy;5=J_OUp3gt> z_2&6}f#>G={A16}^GV!1pMT=(>7$Zl2E-{>*dpd=fX$=gWM(c|Kq6xp_YS+;j7M5;xE1U-)|S zd|u(Xc|Nc7+&rJe&GUJcuQ$)<)t;N@bEoI#`6OH_zv*eZ6@;ul3wKpRe)UJfFnJ+P~Nt-52F`zTP~auk}3F z`t&-_FHl|+pF{uG`+DK$2_0J z&GY#;zTP~a#Le?b+&rIe@_o$nN!&c2#Le^hX5Ys=pTy1cdA+YU&nI#7d=fX$=UaRq z^L!FF&nI#7eEzNPW1dgq=J~wA*PG{)xOqN_o9FYbzK?l6iJRw>xOqO`=KGlElel?4 z|IXK&=aaa3K8c&>^X&^2?+&rJe&GY##-^V`|C5;xE1yM4WRK8c&>lel?4|K9g8&nI#7d@4U(bId%S?~y*>=J_OU zp3nFCdh>h|H_s<=^L)O~_c6~War1llel?4Z}ff4 z^GV!1pTy1c`9a^uJfFnP^Z5_H-aMbg&GSjzJfAoDKIZu(Zk|u#=K1`P?_-`%;^z7M zu&+1ICvo$95;xE1Kl(oA`6ONCwT^L!FF&nI#7d=fX$Cvo$95;xB$ar1l zxOqN_o9C0bc|M7o=aaa3K5y~!H_s<=^L!FF&nI#7d=fX$Cvo$95;xB$ar1nB($C*K zpTy1cN!&c2#Le?b+&rJe&GSjzJfFnP^Z6-1fAf42H_s<=^L!FF&nI#7d=fX$Cvo$9 z5;xE1zxer^=aaa3K8c&>lel?4iJRw>xOqN_AJ+!U=;zah_!-L6r~UlR^GV!1pTw`$ zK85n5HOH=3UJ<`Zc|-hj%CpbNe9-5+$_wJZMt|bw`6O_>fAf42H_s<=^L!FF&*$fSfAf42H_s<=^L!FF&*$fT zfAf42H_s<=^L!FF&*v9>{|6i;`@bN5r1FaRiOL(|=PJ*>==*O*f8r(j6Mr@O6MrZA zf64d%1o{*ICi)XM&nNK%kCt`FzU=!yT6sbIiOMVDYn3;|wlel?4iJRw>xOqN_o9C0bc|M7o=kx1+{^t24 zZk|u#=J_OUo=@WD`6Olel?4iJRw>xOqN_o9C0b zc|LFT^Eb~Yar1lxOqN_o9C0bc|O1C=Wm`*;^z4zZk|u# z=J_OUo=@WD`6O&^4|eb3GFN!&c2Kk)VD`TU{h=J_OUp3mETy?H)~o9FXKzTP~aKla=_pTy1c zx!c#9=kpHF&GSjzJfA=D_2&5`Zl2Ho_VwoZywh{@d=fX$=TCjTc|L#Uxp_W`o9FZA zzTP~a#Le@0m#;U^=l^(ao=@WD`TT{iH_zuUJvYxMar1os%GaCclel?4f9>nd^Z6Uk z&GSjzJfC+<{n7gUo_Riro9C0bc|Ox=T?h0r&nI#7d=j5JPV%!MZl2G*e1G$N5;xB$ zar1llel?4_woJB^GV!1pTy1cN!&c2`}+Ro`6Olel?4@9X=U=aaa3K8c&>lel?4_w)VD^GV!1pTy1c zN!&c2`}_WTP0D^Qh##)JB0izKA#R?}`}zLs(4Y8a=ui9_^e1kf&-?rSH={rCucANk zJJ6rFc|ITD`^Kf5po=@WD`8>kco9FXko}1^BxOqMw?(5C-ITC}kkE;7K zCG&g|H_zuIe7$)-iJRy1w|%{NJ~PkF^GV!1pO5tQ=J`C*bMt%>H_zu$zTP~a#Le@0 zw68bM=c7C~&nI#7d_LOOo9FX)JU7oLar1m0k#u5kSSo96i>Zk|u#=J`C<_c6~War1l}Cvo$95;xE1 zxbI`0PvYkJByOJ13E#&&pTy1cIqB=o^GV!1pTy1cx!m_L&nI#7d=fX$=L+A)JfFnP z^Ena_wGZqc^L!FF&nI#7d>-%nnCFwYc|M7o=ko;L$2_0J&GWg+*PG{)xOqN_A9a%c zJNl;^!-Gh@0p0@xITCwZ0<$TIJ~^U;iHE1#$Cy691OgXHW2beyO}9Zk|u# z=J|Z0?_-`%;^z5$lCL+^L!FF&nI#7d=fX$=NZ1g zc|M7o=aaa3K8c&>^Gx60JfFn(&m|8l;^z4zzDnz}vwZ(4W7s2yM+&rJe&GSjz zJfFnP^GV!1pTy1c`7}R&^L!FF&nI#7d=fX$Cvo$95;xB$ar1l7uVdXXP(c3e+_hk_u{W@mE)46{B_i3Mw zct(8mWBZ8b#7EyYk9a|Rv|UHMBtE0OBK`v9HSt#|Z-~D`c{;ECqpTy1c`3&FRJfFn3qCau-d=fX$=QDkO^L!Hj4Ehr{&nI#7d|u%Do9C1G zv1jT&CvKik;^z7MJ>TCvpTw_3f8yr(ByOJ1-}n8^^GW=6^e1kfPvYkJ`~%Rm<>vWReuZ-Le6E-J_U(w>!#tnL*D5#9r}E(WRGw?Sc|JEte|V+L^Qj#5=J}+0 z^L#3AZ>#QMo=@cmD>u*Q=nG=|K)rcBm80G~pURKXKIZvUet+fW`J{UDd~THUqTW28 z%HiQO&*w!_zef9;=TkZA&GWh0*PG{4IqJ>xd9klI&*yW6V|~o?sT}KLo=@dDdp@^F zAMA7Ud~Ow9>UEjtQ+cNRkaHyGYvtG{%at!G-&gC+^Qj!(2J?K*%6Z}OGtZ}T?0@ro zZj*ZKfAf4Q$NHG(b5829KIZvUj(YQaQoVUTmE%4&&!=+aiFrPsC+E#|9nABo9P4JD zPpUW1C)Jzhlj_a$IWOl$fAf4QpVIl5=TkZI%{-q}Z=O%8H_zvGIWPK~=TkZQo99#c z3Z0L6K9wJ#+&rHP(jWEa`BaX2^L$eM{CTo(E2=lor*e2W->UWBP!2z#c|NJ$JfAyc zo~Sp^r*iZ+&nMNJ=TrGUx(?>~RF3sD&!=*H-7(Ln@^S5Bp3h5Up16<9^Qj#B$2_0P zaUYrIQ#ta}JfF&uljixPKIZv+zTZFQ`BaX4FwduQ%*Q;R$}xZQd@9Gfjbd@%bjRJg zEcW4kPao}*gVO#lllkDlLpy$G%C4FLvX6azj%w>uIyfCh^((qQ4^GDrf1=ip5ufV# zSju1O=d-@+^U#!b`uSYe@`KX@)8e7+Uo^Fky}LhCdU?n7$&wG>Z+VsuOPi?A>jvuI z+48ZrehbyVZ=n9g9X~LAQRjnG|7@WClLP#FEgzki=lRot`ujg)&(Fd*=jh|%Ek9`Q z2c`WVEbD_~j~?;%=k%l;U%ytie6*f#+?IExFF035T%i1-lY~EBgXuEmgId(ta|7|TFONWQ`f4|m0;%2G8akRnP$4xCisI9N` zy!#7Iw{-RTWXXrG5AfXseBWn|*7LA5N7psh^3l3|`J;K)9qabuuFnI~ruzu*4vzj< zKfkbjVaLXe%hspq>8G4>-t?NY&R;t{oi@zO&s?;5`@+op^upHZ^;@>h&TMZhHf)=| zXv?+>*KL{Ju&`}@`}DdUm!|dGw$5#tS(w?d?D*v?SN0c8Z`?e)d3xRa{JP7gXJ!}X zFH0Ne*KM7d-mqiq*2~%~}_CvVs=f6D9`^V@dJZEp)E29Hd3M`m|yT|Il&?9vg_=S?ifu~Yt^j!oXfxK$^j z=V==*n%O=zGrxLt0TWBl#z*$_<0E^z(d;MNek*Y%n*F^U8=8GPZeS*^qnqRCi1p(m zd%BHgzk125wRBWGc2DE{iY)2r=14u=EaNdfpY5w9UH80h14r+9tj;!!U9)B0ZHnQ7 zq5jrk=oH;ugH00p>rr{>29DnIsrRgR7%p?$v*^PG?I}hXGr98k>6y9BtJ38&^V{}3 z+q&-3HEYhZgQLoo6O&6S?U_{C)AgI@*Pp*>^Tvg4k$-=3`joTJSe}S3@1-ky=?T5` z#9lfv(U1GjH_?B>6}>%<@1+yt{kXr!#H!xv$^J!}>_6r5{!{k1ZeOy#^`GqTG1=c_ zdH+OK^k3x4{!<>`f69se-jn^kSM)b&w{YK8p3py&RsB~vG2Va9iGjsh-rs#ifA>}W zGoKiEfhGnPcjAQpOPw6=KkekeiXGp7tta+(pBQ-YCI?=o$$=$aKCm|?1~%TriT!K5 zeBdP+#Z})%SiY+Na=Y#;dc!HuE-M1i2G02T}UYIE;~>Or-=J| zNH~RR38#qrPbuLPs=Lh@sOu)j>NT7qA6PL7r%*286tIR<;2KVm z4=k~UQ>fQ)id@1ea1E!xHJk$1a0BC9 z!YN=4r@%FwA|F^{4X04A;S{-qQ{Wm-fonJguHh7T7f#3bhEt$jRs`CGQ=nZq1uEeb zaTiVz_n)u}mQdU!MW7N+5%>3ya0=BDP7(K?Qo<=zcexU%gj2wBzeU{NM8YXl%l#9u zgj2v0P610e1uWqdu-s|^OE?8A;S{jkIRR@pMLw`t5>BC9!YN=0r+_t_A|F^>4X04A z;S~A6ib*(yatWt^HJk$1aEg3ji8Y);y@pfd5>A0@I0dfZ6u5>{;9WSK&>K#Hc3BZ< z7fyk8;S{KZQ^Z|3McjYFE?7cwmlT0YI7QswL&7OkOE^W`e@Y3bP~GK9pb}02%l#H{ ze-jC(P%ZaQz!FXYOE?8A;S{ihQ^0bo1uWqdu!K{0@iQ}T*E2yfhE>(3iTRJkxMuQuHh88hEw1gPJwsf zw5m6p0`0OQ&@P+;?ZPQg38#p=aEiG9gk7+N;w~uym2irpufyI(= z3gr?`0ZTXqtl<>-z~X8+g?bIA$Ol$T!YPzXI0dZX6u5>{{ATa0*!Nw}|_jNH~RRxqkwda0*z$DPRewfF+y)mRl`g38#Q1oC20R zCtwYy$Ojfn!YPzXI0Y=>6tIR<p3vA;+kY}ghpA<0m-s>K*KB^&@_t&G|u7y$+Hl15-kBsvIH!77O>=5 zz?x@~51drqAvF=|C5Qr+TnSk7Eb@UinrES2^DOd#^J<=jddZ=HHO~UqyE5{DKALBt zUhlEMHO~UqJPTa&EO5=U!1aa&*A~ivv2@;77ifK!U5!&KQKAn z_g2rAcFE%30NT>-&JVQ9xInwRJJ2rp0_|?eK)W;yRAMROp7)TpGnRCS)&18u(SLz` z?>HUx?!QFI!Ej2st0L~cof-h7{`b6A6LAm`ywT5KmL;GsrRn|K^_8C}4O`TZZ_eRpuR+OL! z^_q{7%U7Mq2VQNBl~^xX7r5qAtvu!YR;hs|VVJ zQ=r|33A78RKqZ_a?!qbJ{>z)_zdi}4*rfjoC7fb)|JBI04b}3kTg3fKE#VZa`%fw1 z6sjehBJO|1WV?oHxvL`XpNZ_rP%YsUu!K{@{c9rO6sjehBJQ7{gj1;2aEe^QDe{3= zS;HyT4=kgGQ>>S8id@1ea1E!(C7dE3c(pa0V!eb@;2KVm4{QVtr%>PBz5YE`2&X{1 z-4SSa>jv6w^+3CD3bflWfp*~(sDx9*T{uPDe|Zv4vAX{Pi$#8cTS;N!YShZQ_7Eyp<1?U#QjSpKShOV*^?3XUyg)RsFojk0+w(JSi&jd zfxXs06Ah=(MSu8m{55*Kmq_Xnzg7+8R!=kAzd;8cvZ9 zYy=IbP~YuT{~jxZQ=r|3473ZUK)Y8v&@P+;?KVuHT{s0Q;S_NfP7(KCo`h4Z?!Q0@ zr&!&8i4snsTDEP({S%bU6RZ1ADd7~VC7dGeKc$3IsFv*-asN_DIE8B2lM(k{j@+4{ zTEZz{38#Q1oFX3BYyC6Pa0*>CoFX51l{K7Vy@XTb152Rc6ze6N0@rYgd}x0SyxJO0 zv5$mP;2KVm4{QVtr%>PRRR1;xgj1m1h77a|r$D<`JJ2qi0_`?Tpj|ixD&Z7y7fuoP zU!H_htnR-+38z@ye~A)Kp<1?W#QhVL%@eEpPbuLPswJEv?mwl3Q>d2h8gc(pNjQaS z*^?3XUyj_Fp<2QzUMH4X04w?Ns``AJQq}Zc9eoOvWGpV$0zldVnfGQb-}azUiz;{t%qvc_SKz?iq5^_UdFDx zhp{W~W$f|yF!uO+8GFJ#j6Gp+tgKi6SR5N#OMEjpyjH93<-DtU=Pc(P9xLZPv3D$v z4b544_m9P~p|SQwW%z>cVdqNswxDmc9lV!w_fK3WcH+IPcKc?UdpP&-Xt`$wM%%&O znRmJ7f*`nf0Z>(t|_imbnd#wu4)?%ulxe>DSGXG7(=plRvb2^hIvq z*q&h{A)M>DWLP-1XV}P4H#969(_y1EX#Ix0!}^Xb88$S@Zds}2o?&7BxVCm!du(p> zJ;2Bxx%7LGPV+Q$WX0f^m4io)A3Sox;E`2>M@}3(((ap~X}96tbEx~_p?4L!BfZz! z9qGN+?nv*oc1L=zs5>J2eUBD&0$R}a4s7XE(1mVYw|Ta;hSFghHa&g%c_%;ZwCU5% zKDD)Rt({(b^6E9Gjn1%T^M&iD*Kgm^sZrCq3%AWL!)1h7L);ZWhy{YvseEk>X2D8|UUX&n|4_ii@^xo0W=g1vYHo zHoa-x?1n8fY5J^l+5;Ol&ra{yKC>as&aXLj>Xd0)%8`_{m9x&wuWOyK(x9bIrt}m^hYnN_*=6Ta+oOyZLxNUBRE_r+3Rc?I#{N{zQ zbZeh>ioWpi(kA%Q(z5NBZCzM*Vf%4mUOsNZXYI1i%+IA|v)dMCmYux%tYa6}U8K)0 zn%%MN!X2BpY&drFhO}(-Y}2~!o6@okm(8~Qe*5Nav+l`sdu)DY%ev73 z{cLW_LR!|X-m-<6OWV&!lHK;$wr-a!o7tpV-Ax_`F>&GZ6oOee$q&^hmi3-}b7#^Y&Rvs}#Wd-of?{)idL18hP0FYyZRewR`97 zvy|2<$hv2H{(zqvWTO3K>G*}c^X|}sjz7A4w&xEXe`PjSd{V&n+tF_^!I{s1}zgzied~1CV>vvVlMr$&f-{=9q_9i_c z{(S^FDs#o>qmM6d|64kKr~0{f>iAtti`&oP*T=_K(s=mHbDhvD4)m`W#-Z(XG#sk+-!=A2+m5mX3#SKYyt#z}lt7?dQH* zO7Exf*Q&4oS{=V2)37dh{Q>IslhMB!q1!#--vJoAO3u&qc#e;sZpXIvdK-^_ci^!9 zzo^%b{fT*FAAF}ByY&2bT|LwF zz3b}#+x7o|#@oM(pc{Bo*KN-qI6pq#N#pVF3~bWz{Cd;NnSRlZAN9iZm+HgcqT`R* zbL#H1jGmAFA&ODYapD+{fByo9aejOp)@m+^~_>Dt&IJpPF~p4aa=&zAAGxBni&(g(&b z{b<>-q;TqeGQNI>R6epj_PF*&#lAtVkMaqx{gUBn>;Orw -#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; ipIDrWS2<{dfg1bYo-~<>LoZ#;6HaLUB zoqYSAbN0UX{HXP=)o*oGSJhfwPZv%2GbBdHAqWZeFyqN#zHhqc{9vn+tZH8~&ON~L zd7we6+~?z?pK9~^RZZHZn~?>sbLA|l%{C=R>mc)iOstEomB-ew9s z4*Ctg1td@ZIa!qjCRDi8u=t!$z^$(vS{fNAQ7h_{-wi7VN$nYEvIwbX)$2dLb6WHp zn)P#P5Ll_dV}N*bm#=**q&Q62*x$a`+;--WIa6bwksptYwFVq+EIcxpae(f4-#J^% zkv=_MR6Nbyeo_v}3Vvv4JAEYW7 zIkn4|Hk!*X{PUr>YL&OSC9d8m>xtldAx}c$xRz2vlw%=SbIoAw<63G*8ny#VOZiFE zD-FqKl03v?S`yM@8j^Xrp9@M@hYH6JnK^Q5=jHS@=M}d!n5i`PRJ=5_3iLjCX`mLx zrB^%kOUX;ES!xu>B@DQiFpk9~sKb6}=V8|=oo7Z|_gdM|$cYa+)eQ`4S05OjZw=(p ze61XNCY4z=FRCWoIly+VXTln(q;OP+eCgGj_&<@Rj_M6TpU$=9W1eOvc|)F7x;0BBSCE{1 z+GO4`y_BoLdeQOcGCm&TVF#$WM5g52c{Cx^A@I9|X>-5XwV|i*?onYe#-x!Wz&fR( zCF2Ix^`_v?Qe-wY zry=*sZo<1S^5R=jcn8P5W*Y;>gYJhxk3L$4dsNPItLKw0_|Z*Qn~geo?dd|j?-)Za z|7b7O&W$ugC;$!`9`z_w%sNYG+{(Xs0dxbxzD%iAHvd>3TsVD^aI4oI6z$N3+qs1U zS@Br=769fhV@r}VwmiO-(Rw<#3pbiQl@X;;biie^+Nx}FRi76gpSuybyIu(oj~P0~ zNPJfiTZ8*EGImOODdtZ^q`%UEoQTD=8~TfyASTn8c#!efVHo~E7X{_^3N-hLBGytKRN8W8yp17Rn$qE zn@y+_7e+BA6zLDJwg?_UvU+B@P?{U*Q$utasLiGlJFLsFf9mkbeZ#kn*9?<#9;P;# zL@Y*N|BR7xV|+07b2<_Bv-VO=25gW^cb-miS>c8lN^La455spGxoBQ8iokp4Hfv03 z_Cg^KyD@K#y_JCSqnvlE4P#d9>O3YCFM%nny7X!NSxZ)9m13&!tg${WgKec0F0$oc zBZUKx+)ETTj?mUVDf5F06J^Rd3dLUyt`&skc2+kDEmtsI-l^En2P-=+UfxKjl&1ni6l8>9q%8o%cC!#F_p3+7*i>G=V%aWR7pdMk1hKHbNSaku7GV|-S z=pQ+Z>O?rHdhUDn`-O?-%nahB53Uj_P}h2=B>Cub;b^vE1^5U!{YE%u!v72W$P9cp zlnjF2QcV=qnic6*leH*!-ruR?;NqBFZY~StxPAPcUm33ZNBce%QV6ja8tC#4Bwe{9 zydg3()v0K>xW8qZa0oVFNIYFKN7aK&epMv7tlZ-9xvAC!9aXof0Q-1x9ICBtWuA#|k7CkHa`lxGqAJ$#Lsrwzh#M5<48L-2<14{K8A zaV-lsS$XE%tPv=7PR!Qq)BHuh=hfK3kd;LpRHnYVeKpMZ;6M0>wMD|h7{piBWp?l2f6l~d?*DLArlxSmT|WntTVwj|AQ z$#iCN6|!QmF@1Qkhv`5QoOCvob-|tl4Cl~1+hk25F)vkXO-QPXWBR(S`DSHV8Y}Ny z=<_PaLs-ZTgR-sS?WwGhr7s&kWsWjx>d*G|YxXC)_K2p0FTVCAR>f1#WXtuq9p+0v zfOZaTGSB5|^`2ghxKjyVO`&;rcki`LZh1Xr&6GL=Tl5^4Y&Fa4AbPIjGL#{DIKcte z&fDZe$FM@mA1+Rh%#+7YNBLgAa9;1C(+IanZFnp;~+$x6PM5j__RPNLUJ>ANUMkfKINv^y%%~?e3^ybeiSPl8kh6ysB^HArvQn`vgqODiu$2}L#`zVCIu$}Luk$m+2;s#V8|WDvwW$5nr?Ink8y zdoPpBtXXm-zMC&J4nJVvB zfj%c5{!DT8J|%v~DaMt_*;j|0B-*d~O@;ER3YC?ujmuI{dQulm6xi4zth;@=a5=SP z$WS9ixFX+)nf(r0|4tB$8m5`qwe5Ut*~d}Qg}qgk!3nZmQ&ax}Vng4lt9Js`l%>zG zW9+af1=1&nyqSl~+50O3Bh^PK+R>zGjA}q>-^lHE!d{ZES&hsn1iU> z1)VKYuM_*GmmqEFg9m*z%W~c&%h+95?C7twqJ@R#`fB3+g@qRWoY$6Zy6HVX6GnIQ z7iN>mq>5qcd%1~q#!lsyh$S+o)OXHK;g(rIJ5mGNoMT~gbNMdzk4}yMrW?i?8e)@J zX2I(bMSLj`I?4!DER%LkPEnQ*j>j;cT!BeKLnNm?X9q!Oe-;$-Nx+OqQjoY<`=nB%B>Fv7j63@}K_geWtf8yi^8 zgAEMj#SY=e)~Spu!*nM4MXiHhmK1j>hwLGg3yC;m7H0Ay0_ph?fe3<#@WO~jK@8UT z@aIqiK zC2N>_3@Y+I@};l)U4XlgsYtAH$jDJ5D1tz$UUq3*d1P0DRVdd0zXhO|T^k#T^na>C52cf1 zgVJHYg3{4Kk-5u+0Uv!)5miA0XdRv;{(ewa3{D~92Zg26^GjGW@Joo%^P|!8!$WaT zxlZO|7|v+v`KgC|@ozX^yr8tc3yJm*@9|)OLSD&%L;rKj2akk&5gG8RybrBN%rbQ> zBK#fmAFBicvf$8hgtos7_?ZmY_mcIGd(0}*f!`(6-J{E0$R84cP5Fum9T68o2+;A6 z(ea=l1`~X2N<&#tcS+vtoIutRfvE!;w7hP(AFJ%92$5#5eO1Nhw7nB^OGU4Mm#=>L;?+Y+BV8w0 zA7g^s(5)H%*=Apr=EQne(LQxESOi?;@-+1HND%UtJF?;KO|u5QB|OR|E-hF+9Q@^* z_{4fLH${}Kk@d`u=zfc)_P#+L&BxLe4+omxNe2+MxfP$9W!pdbPSKh^%4x;G0Iq{7 z(x$E$>h_NRVsR%!nw{Y6xEu6V}}Y)Z`h$$80JBE0ln zYfWB?%&hmB-8z1QtVe`m8ctEQtbDbs@GRpgSz0}jl3BdYEd4{UAyM}cT8E*}b7SF?7w)oDy+=_5`2Ha7 z7hHui)!w}qCFXtq#m4chU}{yt3!xZhB}iz5dSOUUkGbm8{O7O2N<-kJwJqGwZiGu# z>3ojBkoruX2uO(lx0OiX1KN;?VwY$0y5#=JH~w4+=ppex^jSrse3wx#*Yhfy1WrC) ztzxzG|1oD|(tk7Oa!+lo!c|ngV9yB~1@2%~yyP7YfliUtxUUE zL)ZF1#LBk6t+RhzTi$TNM4dTWM6J)NDEfZyV37p8%>9wTg+;YXSIXeXwu)p20yt$I=SKX@BnjDQv5c^n&ApNw-K{l1Pme; zz<2jp6-JLgFf~Ua7fcv^L-O*O7tIq(S3i$ z{?ffVBgRsSp(8!;nS80Z4gug}F@e8usZ1sT-M_$P>)*j;q&U29V)xYnjODbq{FXKGwR#`yi!E;&g_)-6cxd#(mb$%`11 ztv>{*47B1gbbY_nJ|%nTaPDo)v!^l$GmX6f=}o-=5zM{7TZ$8TCGLsV!uu(V=h<4E z^vhN8_o0Dc+4;vcGviSZ@_P)W?3(Af2+q(%aE2~|GYpCFO#a0g9n9AqG&1=44bu6& zE*)-wAXNlHFe4Cx8G#VYlmVNmZ!3vB)ow+%y~dAuJTm-Jf@oexdr!8eQ$1 z7?B!3z1ly$)+*l@{@BJ&aI|J@>q z7}o??;!noq;!pgo;=!Tu|7wv;$p6tIu>yDK(L3Zz(K~QnVRYnRp#0M!@zDOQMM_A) zaATzq;4-?rT0p$Aimtk{8nc1~(~O0q{e>5V$7SlVWhX3f=pq^dEzl8YfyR%9#t(nC z+wzsNhVmUd`l6UGYA^dnvN>gq0Sl7B|5PO&DTKKkA)!bizDSsTzs^2AL&if?h2WD; zRj2+oT=X5lLT&XMgJaw(K|#VQ0eb8zLCosxYu>J2sI7QnUqH<2Hy+gYo1HQ;;CvX( zd+ayl#|cPR-a~AawhJRR<@e3q{ju#t`f=CKNLQz6| zQ7~01xoOi5PdPH%j)9i;RcwuY^5HIX@We; zvZ);;P@#l#fEc_o52Y(GN0J!O|Mqqq&wjc`FQDiwv7hx?A`@WZy9_k&x;mPk{koDB zM#25O!JLz0BB8-{rLeHIb$*MU@88C-u_lNy>|DVsw`y07cu$^my}+POid3TBA9G-X zJGtifPpUh5h9x*Rc}`kwSIgXvBhwxQ)oo7}keN7 z-*KQV@_pBZ|MK#eKg+b2jnlXZ2Dah-J%vTA3RH@$$_%boL|G;>umYNW~jF6Q~O=BsAPit4Olwn#eY84+3Ze1j6?Nv6{o zw*NGyX*#D}h4mSN_Q5C61td^dV9ovC$B9V^oM^5r_12@sHq~Ck<-FyrIv*C*b(R)KVD_mYS zfU`aJh)15mo9yndS(DPH4R!&-jy$~j{@He7`D)V%YNmqmW-`2?+S}A|k#9zEac^B| z$X^+LOCBZo{2b}$axWyMfL~bj1LOT$o0;4Ne6^)#LHO&Yy}G^hJa{Rudc((3q@zh= zH_VF->V7hq*00_3wq|jTKhj9aslxEP z8B9yLF2E?*=uMo_u*=s}gw8-(ekw{xN1}U~TLcD`blTMz6 zO;6?Ll1oXGs*TX3jp=KqQMG>8m8yXAbove6cL8vNa^9hDQ82(^7E`>y@1_bS3#DIslhjw3_qRM4j?Bk!V`-2T5i4Dq~MKQcaI>@C=?YV~WJa@z#q*82_TnYUS{K&;s5) zLkc~t%q8qudKb7C5stsJ6z6l-51fDKn;sX@j1qIAI#n=v4k9eb_I)i7UavkfLC@oa zohhvkKUik$J(s82Rp6FwN)(i21+s)wtzaaGnMam9FQO_&oIBY1P$7ZG#ego7N}5_o zMc0fq?bnK5KO)w0(L`)Lt%YO3T!ofqAQ9yV-f@2nMY-+B{_j@lP4uyhrQ^V!HLmbQ zPXN`%8YPfQIi1OY$D#GCrEb%VNb<)(!AXK2@;2DqzUXy-mm#NC`p^!} zdfTI>y-=cqkXWaS-qL;1VT4}fGA!Y(gU6F#x_Y~wM*HO=sBy0G)X-y}WOI$-2yG~n zh6nG_yLYBSvQy{xSYG%LLCB@^YfpZi))`prrL4gVirnf682a%L{!}yjLchI53d>{f z(4kjg0$4+11vq|ntl`sxE=~iE6(P)v8?Z>*ueAx8EUi3NJKz~3#)9_V zH0sn*Tu#|fBD=9QyHx=is+N6bTlobTyKxDhZqh;LGTJ}J4%NAT^1KEzFXJ^kalT4va{DwkB2LE8j^MHR8AZTercY)UBYkZzfaK`B4w-F zHzA#fTpy#c1(jOxet%NPBMH?c@0KPfezzB8iYLJbxhATYtqAmejatM-_C53%+kI-q zHHVX(%Wd^*;rAuTm$jWnjEqPh_q$#AwwEW4s8SEj3WiV`SsosK9Tl}3ClRTkW&~A} zy6|_*AE#iSuL>>F;xQ#QXdy59Zdc`Kp9R-R=ASzCtc&Zn++=fPQo=drT6Y3{GQ{#m z${FrdCb!EH)Md@!s5LaV!`@KO2hq&?>zv=wCDmhdF$|A*!Q=GKD9u>>&+&?e*Q&xS zvPp^)m>E^>b^-G8Sd{efSn`;pD680wg;?6j1<2Ydri=#Gdyg?;;v<{3DA8Z7u`55Y zjsBdtM^+eLtx$-qmu`wSCcaN3o~}zE1==oj95*2kk_P~$t$lS1N2dhJP1Chb6qEeS zjdjh~J9%;02Z-hi=?vq{$b+r_SpxoDDw!{s%4wnRpb;Y~4Z`zPHvW+{g6ED#3Yp z7gMRNzb5?<*5}p9_wTp5(e9U!ecFv8Zw5@VP<_m?gB&iX|9t43L-W~ro!lvjiDnyV z%+8GAZ;mZu_|;%ZvNzTiZ*wZ8g>%fWg zTo|qtmQt1Yt$}T%TVMe2ip*6r1z04qF`BigS){yTOVnWy?>2H%`(hB%@LILdL#S;z z7pBZ(GbKO3Z39%ok6O`ia$vdA68^$6W4-LT)w4(Q;JC57q*{Ipt}_w@y`H}<1eK2W z&yzNM)*pfvMz+-1r&B!wNWOn=b}LQ2n!y!61Zxuo-4Pr!!e7`EraEsl?6BF^%?oaM z>bWVgJ$*k5=?t%aOa11MPwV{gP5E|tSieBH7F_Z{&)^|Y>u7j58bp&mNdX)IQ7w_) zv-R3GA?GbJY&D5A+rSP3E&T3p25M%W4&$a=QmLI$xJDZtQ947HkH2rAQT3y9jPb5; zt|PAT5Pi(ZyKN9Gju{_VvdDK(D7mzK8R^8*)cYsA<9>^8pT`jBpxQ<=d?)hd+hFc; v@|&G60+C-AWiC(GO<>op-f=1)X$hX8q4<6HpHG)^uTL^qbqZ-073u!~h@QNW diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/Makefile b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/Makefile deleted file mode 100644 index a3bee96b47..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/Makefile +++ /dev/null @@ -1,27 +0,0 @@ -C=gcc -CFLAGS=-W -Wall -mavx2 -LDFLAGS= -EXEC=cnProc_gen_avx2 -SRC= $(wildcard *.c) -OBJ= $(SRC:.c=.o) - -all: $(EXEC) - -cnProc_gen_avx2: $(OBJ) - @$(CC) -o $@ $^ $(LDFLAGS) -O2 - -#main.o: cnProc_gen_avx2.h - -%.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 cnProc_gen_BG1_avx2.c cnProc_gen_BG2_avx2.c Makefile diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_BG1_avx2.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_BG1_avx2.c deleted file mode 100644 index 3c9811d331..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_BG1_avx2.c +++ /dev/null @@ -1,696 +0,0 @@ -#include -#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 bb2aa672a63d557c1b68f7829b0c09a204095dc9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32672 zcmchA3t*JRwg30+=CMf#2_y&z%31*fk|%Ekj9@S*T0~K+)y-=YqIoqB3|eFnLgiAt z*j}x*R#98utyB?w8>|NPT1#84)_N^f+k&sA)vIW${C{WW%Bqon@69{!+Q--C(NYYfMVpY5kFpjHf*94; z(+=VE^>pY`r!I9t3^9G3mS|)URWrP`#(G!H^{y&UTD3oCyR)u0XWe!m=6hoW6?3-l zCjSzL|3R8d)Na`A_PV=w?n&RdKXpUJYr85w1n%r>)F#x_Pe|I>o{i4Vy{Q|X+*t8p z&h~W`G>|#ld)+6KH)jTEdQw}enWCgsq8XZ~K{RtxQd_E-FFb>`2lrOIHb4(;rZptH zH!X4h|BTAPTRM~jbMV%OCQi%RiVxkjt3LGQtl#t*j(~i$NxD|6F!yu%da5D1`+901 zw)OSYLSV_(X)vt8dJQ%}Kw-HC8#Q>51}}!_Msxcs*Y>)+ZvKijVL{$&2S@Ay*3LEB zjEc7Li9JROd(dc#UOziGF8i=@!|qDAx6;M;-pax)$~f%zZp!~ZjhkH+{j})!t;JWo z6MY*`>z97G&&0cu29+eo5kl$w@WldaEnHcroOC4+mUW3XR?>O`4 ztgrq&)?$)4tKZdA0-s)SkSRlEtBcGuWUllfGXt3_KQgnBafoxA;mk3dd4^MNIP;NF z22V1ag@#jUIHwrSVq{dKryI@^!&z!LXBp1f$Xw~e08$+LIF6r*#W6wNaXegwn%6nt zl0n6Bz&a1?SobuIUCxgG%tY3Z5NbLusilXqJ$n;X?Lu7&!vL7K6q0D|{_E6?i zWK_uh8yQ9Z92rG+Fl&nJLq?HPkWu6`WU9z=02xKjL`IQ^Afw1bkx}GaWE6QgGQFgg zkBlN8hKwSQLPn7fM@EsyBBRJhA`>K6gUBfI*N{=<@yIChL}V1X02xJ|j7)@%l(Yu? zyaxUjTLT1nuYtgTYv9^Jt$`u&$MT(fC?3@z9mn%rn8?|I{}0viJc1tZ!eB?N6#!K4g^EHe{66c4U;+gUF~xA4W!LJ&KIddK?+0)r*YMdJ-9>^%OEns}C8~ z=rhPDt>=(YTF)b+v|d0)Y3)WvY5f)%rS&2*s?pygqqJT@Mrpl@jM91y8Kw0)GD>R? zGD_jRzO=e-P|GnlemUw(E42`?9NP}{a=aq89N7_TIr3#5 zF80)dq~JVc3lhtNZeh*x@V>fYH^2IVOv_n+A$nw5OtK*RdX|8ITkSI-O8R=161}hI zOo*z!p0gm@`g)c@Z0_qh8{&?>o^v2@g?}yt6utogh4Ubwa6SYSz6k+^3m~9CEyv9-xwSZg!p2;KYGz8s3v zCDsaUH<`8Ky*k;^!LH6+bTRoAWqQtfS`((lq^r{b0rBHPAbxyA@9XhHAbwIHy8C)k zAvX8*q(LC=(jj{LdIAs#zYGZIWkNtN3j%sWAfT5G0llFR(93~XmhC!g&;SkWv zgMeN>1oTEgK<_XJ=#7Mc-Y5v@jfQ~U;Sgwc3S!>^ zx_{ih?r93ZL2U4Sv3*2y|9Ck%O81Z4X6*jaU+KP0m+XZO4se4!0)44_NUXu`L9Kdw zSO#$)>Am9-$XQQk7_;ifCLSL8dbVKe4ZGksLm+Byff(P{b1MXb=O+-@MEfZOV(2!A zv-)~&hd?OZ0nyagb0-9X?k)(Z-wgrvdmy0xGYF{v90Kb1LO^{h1k`^40rmSJpng9D zoY)2d^#>rJz8wPUJ0PI`AOzGOf`IzN5Kw;v0_u-KK>aZYIPo|H)SrNWdM^ajcS1n@ zNeHO_5(4T^K|uX!2&nf#Kz$bkoOlKT>d!(z{W%Dz|2G8GpND|@uOOiQ0tD254FUDt z5K#XO1f2LS1k`^A0reLlp#BmB)PD~F^_L-_{t5)t{{R8?S0SMOM+i9a8U)n;2LkG^ zLqPpc5K!L(0rfvaK>ZB}sJ{sT^|v6P{uc;1@mC0_{|y4_dm*5{4+83MLqPo<2&lgc z0rmGFp#DAt)c+0vC;B0v{tpPK{}Tf0A3#9;LkOtJL(AxDZNtlz8~Q$|{AuNe{>lxXZVYV5 ztX%tK3J&5a96j`MPt4b57*^NVQWNsk0aZX3=_1 zHGS1s~KLsJ?a~Pjm5O)LAJ)>yaLcjK_ywo50)+kY+n`B6A&#Qe=Ts5n1R|MiybL zFxMVwOk`|ioO4v9z?mF5)+vk>p|unz12Z(j86|ZPqyr|&m*v$5Ndp=mM5S!+iq}8KKVLd6R;dWjfV0t?iwSEe%tGjdA@iE~d_gJ34|5 z?X6vH!AlxDmj|Z?=bzp|>l`U4QYh41Hho58aAk9I$&?^^H6_^5&@!d9CEPKkxw?Dt z;-$wcO`#Sf0_PS2mM0WpmX1sb%Q? zY1(W80rj&&7)w3B7(KEuH#UNW^P)A%f@~l`e<}KxTpu;$;c2KYm{2$Qyx_6Hsil+V z&6`e!ZM*fY?ZE;V4mQp$IlghuX~#DnJGV?tUp$X=X#B}w0Z+)}Nl||%oj;-O*v1QV z$8GzR$7I>F(AdzTXF*M%vZ^OS>S3lWz3Q3{twwGrg@O6d2ES`ofeIK7fp{Yx^Y7&^ z1)b%tldSz{u*Em8L&~GQWCMx`DrFfq*seGG&5-cCN(`%D~ZB>B;(|Y`AW_ykDF63PMbCF-kdGb*cgbj+o$7a zV2-0=>|mS{|6>SRTpA(;)J15*m1x5_Rja<#-Hh+WSt$4e=>+**b>HIm=~4=VX{ydg z&zzlWi|d8<#ToZbIOm>`2&;>X5h<7bzCYG=z^;XCA#2Kg;~1bSA}w2NL7VOT}V@f zCAyHV3g_xVhD*CkRl1Pn)}ydo7qVUQxJ?&^sY0hNDGmj?m`qIx-iN;3xz9m zVYJ%>Yio7k2>074T&W8a-OE7RtP92NCKRsIg%VZRq6?*}aEC6GslrxWnCccn=RsYV zu6*m&g_-UZXy++M9otfWq~>8%>dn+iJ+8MtBr3GjbvuJL~ z?IG)tA(W<5q2DuT9?`hDm3qo`x)KjybN1G0K^+b#FKk z;hnP-RW*S9SHISkOZ9F#;r^?)uGYn&XQ*QT<-_Xh95=TbCEwNO>blVls4yi+_Ap6}MbYuMIlx z822sBUZu+yxCc}@!sVOY!_iIu)xF==^?z}vt8)Kkx;)vpM3pyl`CGn=Re4WW9@(cv z8-$cHVK|>MnAd1!4gpBVSd}9*ghj&{qvd4L)Y0InN%iUJq~TNLQcUL!P)Q3k1IoSw z+_XS9Wodk}s7ynnb=9})WUm6Es%V%L=+^`%`#P$+A6hhI3QW-iC;NU=MWd&{R84TQ zUocfPkP1xG1SfkRRgoJsrV32g1SdNMh^nIDRbW69oa}L?ibh(28Jgf^A4gT>Aq~0$ zhpX>lPWCdYqJBqARRAjlDR9v>Kr(Pqpi_36Vcun!smyG8BA$6YG0FcI4b#|c+ZWG# z3Ps&oyB~*FtF>57=Mi2tD`qCvsCE|vR~;P9)>l@?Gv}bF+r8{EubNfYB-SYFcL7({ zP5;+C5zo9HMQwfUAG~UMKJcpfPBsGH8VRzd+Wi`E)owOh|BspR%;6~NcE5XuSIt!y zC)OzI5#Y-D5p3hXu8C*1p{T82d#_i`bk98WlP>E5A%@kG~Ypq|>@$zHOLh{q!D)XTD0zAEWhr zoZ*$taqQM2d=E2z&4)yPCT;)MQ#20o4smYcqFmL zafi7RhUR7YhmILK%pIPdiyzJT4s-lNkIOnfYZ1@^c6P)ew1HWKonhXmq-{*v ztE^tpT~<^}o?t(+E?kd2OElfNvMtZYBN=6}+;F|fsVR(_z&H+}^9^d$PT zARmsZrXE#IEVAtRyJO1PH-cQ0=l^C5I+o0Ba}SHNH$7_ad&*w9m%aJ~dy~oDRlbpN z_D+u4)BY{=vghI7r@qkx+N=D6_OA3F9%t_);om8Pw@3Z;XZrTzh8Z)GZ)QY};7MQD z;zudUVswtbf{!%E{vp08@dhhJr@uhZ6x*xJh85>eSVBo7Fr4t8<-CRRvn&_aGjUtbSKoY91kOEy6TlV820Z)1`5%o>g4IR;L6F*ej)gG#CZR%>)bCTe-o)t7_p6EEC)}}g|Sv*2P zUQ3>hin@ky$C5B+i-$t@G{It2;GbICb`%n5?t0&X>@s`W!$i-bSl1yU&&?Ma;wyUZ^H44kV*z$%lLT$zlrf$fj`1{8{>zwe2MYR z0{=VXTLq3+?vy{zF^q$3&~DihlXUo{6dOJ7#qnL`%PeJ)b1W@6gM3iOKJn z$1Cx5e!cq@52EDP54Pg)x#-t$^w=b`ud^Dsi49Xn@1&I51q!0EwPGW(Z!;Fo*g z>pgIfjUl>rNp_Mf9o*^DI<4ZI$X9hq&zA$$@s(0iz1S7CyqJkulr=GXvLzBALiyQmIx`FiKN5tHWMDJLeT`HRh>DE&J+G%ibo`M(-O2b7K(~^TxNR1+OOJh9toOuGNF$QR~$;-E=G_ z64YY^5BpI9nuyyViN8A+_r-Cy=874;;}bWa2i;-PHw_(ac(b*$-l=bG3%59JUD%?o zSJ%=`y{V~fYQ+{0l6mM&M|e7gl=FGy2&zOf_yWc!XgG>5Wc(z?>HJL4BF0Z=oKD{} z@%cA?z)0y#3!i1-jf@*R=dzs@7N1@_H+EJF{#DHXj>SLD;{QPKH#7eRi+{YuzuCfV zKX(W_H?f^ZEk0e_7(ah2_}iHOvIqY?!QajNPc1(EjXz`G{Inw|3TQ_%KXlyUEWYi}`-1-p+yB7g+v7Qjk7vdoGhZ_pCx2}F^a_+cUnYLeu=uw9 z2EjM+)8xV5CiupmofhBr=Vie+@$;I+xBdC2;G6jQ*n>ZYkAG%-O#B2Hm-BU^;G6h4 z-QwH+*9pFfpGJ#s`@c!>KjZoRo(JEIxAEV^&niA{$@$&RxZ#`ldBoz|{=6ypX1@9@ zzTMw6_Se`q@sq{49M7W!-}Gmq2fs$}jX$jx-}a|R@J;;uhsC%1yG8I#{QT5||Fqzn z_<7EQ|Bm3B_}OpqZU2YTKq8s(9L?oCmU2923jQ%%p5wvqqzgmKKD`b_X$|8tejXNl z6F*N_e0w}U5qvXWX}qB(?T=-g+@M36iJzk^zHNV|;G6iFuiJviy%keA~d~^JnVexJM&lCJ}IUYhD zd_Qji8h=du?9{gL>d;YQGn~9%$8JFX^SMW{zyl3%kf5zkWLP~PJN*R~-PZoR= zKZ`BCZNEnFP5d-?@V5%SiJ!+TzCHfG6MPdtuULHBpZ5jd#LovF{E_^?!;FuKpRtV7 z_}KR63ciV-Q!Kvif0f{G=6DEOeB1s8!KW8!DP85k-+Gv?H~yRWd5m#6zaI&{iJyO2 zeA}O+N5KP&hqeqONnwm)wP zzKNfG9{g;6z-GqZ#LsZXW&BJPd=o$A7T@;&Y{56jpYtug?f+`Qr{4rpTIazZPk(y? z$@p)spGz5+^LvrtoA_z9__jZ{34V0GEWX{}X9eHH&kGjcw*QvkoA}x1!7m#d-(Ta; z35?7BE)#qcKj&HeIWTGV{n`ZI#7~z8|A&Ha;^#&W{u6?4;^%pbZ;$62f^XvIZx(-! z<$u-@@#FI<$4@TfGM>i@zIlXNFK`oA9hRNBR=f8IzKN?}SbW>hcLm?f<0lq>u4O-m zUo0?jZsIDRaoMlQf^Xug*n@wG;2VF|S$x}{>jmG$)lC-P?(YMFZ{q4<5B}?dZ{q4r z4}QwH_<1*RHH>k&E{+j=6IW9#zU}`K!T*@!YMBSW+QR2q^T^v6>UdSGT~^}P>Hs`sm~@&;tcWW-5`_9dlbgbH@M<>mImL* z#^wt=js009@Lw~3iNMTLM3g=$R@lyp(zqqAj=HK`;L&Hv3@FQGq7kD|( zBmF&EO2*E9E`L|xPjmT)0&n8^y-nZ`YO~J$0uOS#y#i0+@%fd&f5hYPs=#kyoc>7* zO2+>?8MmKv(Q&{$7jwBC!{5RDp#raDKj}R)N``OtVJ8Wk-dCbjBJePm=Lo!w+pQG% zgIqpK;Pn0ur5go)7yEgq!2iPbw+a03JYG)-Jd^p)30$}8IQZKqDv>&8Rry1~zkti; z`Ii~D)7j5)EDcWoE)=CgfuGEF&J;NPw3AY`!0DHml-dMNKf z>M+<%#mx~3zRyXUMCipk-_3yf2>a%F=O)45%KWKF9p01>dZP-w6A=ng1ujKa1z<9l`%S z^FI-Mdf$*zD$j%Q=QRyGM>B5bYY4CRV!?ld`Evz-BKxyQ@cWs6j^IZ)ZfXVpbLOuR z{L2|P&#jFAxjfGLudKw@T^-}M3;QLEKOpRva@pKJ8T(6^|7*cNj{X0mu;0e~eS)9Q z{QnjF&CK^(&%Y=>&*J&ZVcht$mHCB&|7#wf*@C}^`R54!Zy2u?{3@RJHG*%B@0$ca z!u-1h{}&t&I|P3V^IsDD?Hr$f7W_TTKOp$#{cZES&y0`3CuQgXG4XsokI!_*4c}ou z&lLPB=7$8oiuuig|2WUrO2IephyOtE$ME>yD)_x@f2ZJ^_q2W`_~w0b`*|P5&qN-# zj|JbnXFh@k2FZ-id%EZx#kd(Cb3Q8;{8emU{}n=dmt3EZ%6T3a3H~td*D_(hiuva6 zQBpPePk&y4(rUqvFn^P$%^758yOzsMu07mTUDQcG#wx0-?yPo-YC1ZcqV`r@P_=d8 zny!XWV@rK2I4WOVQ_~(^0U9YY)Lz|!-;2g!^yf&83jO}GsJ6AaIgH=T72(gFhKumy zB>Y|pzr$js@bXZ7JNrx_@-f>MfeoHQ54So(u<41EO$L|zi$=WZRrS;8wp}LgFy}(1i zoE$?c(IWaS+d3CDN&R1`Rg6CQPlr6|KkdIro21#s?bq^gf-p*wOZz&>+K+Jiqm&l? z#zemZE8AbiHjST5cYeng(!2S(z~H8RBd_$(zqLYZ*vBYBjGmEKTbS0+-@jpf8>76@ zGx%+c$@qPR^*Ia-Jv#mdxEYyb<9A(>@yi8Qjvx6W+a}w&3+WsG -#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 95abb7b348c5508e58372278f7d13e0ffb9b3a4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27264 zcmch93w)Htx%a%g$!0?W0l5fb>sA2+LT+3{1&ly2ASzO|-j|SUE|_Fvb`wEGw}zmI z^n{~Udr^`0cWc$uo7rOScz#njb4P`mlk zANJR7sY$&=RkfS;4DxJLE7oqRIZ)fP{($N#(IyA2)ow=3rrpnvfsL1_cZ2m(bz*i^ zrVlWY!-qXJ`=KbE>l%h$e?Y*WE;8NpEa)8WxdoN_jDhiLPj(L`!nV_cf!>az81{kQ z8zA}ydOIQ1KySj7lBU!JQ7e6&m2KoWs^<7>o$OyV-@mFlXVnKK&!`RkB^#azV7@ok zP_g8hedJ&E@IM=Z3Dj=d=k1P#W`*1WI$j4N~*4rs_T%^>Z_z`wNy1oRUBPY13lC=cvA1N`h8mg&?L!Fk9D56)bkF#B!PWyGde$FAB-{x5 zVk7r*wFXLWKtr!f?Tmly1xq%@=_y;HD+So8$h=9JNysdwAe@5C4$71wql0jo zaHb2VOgI(7sX|5@oF$w&!kH_avxPGc8Qtgt;ZzG}p>P%pX9+TkC58hW!+Qr~m>~Zc zE*vt3Z#=FT4qNwzT^oK#V~2PdV&~K|^zrTu60$d8-Y6Wn&E1=8bja?0JAj2l(aNnK zbH)5!(HiVdN!<8Hsy!UX5vjwo_Xgf2^GY_}cFaiK55^=4(6@<7ncpF!L+$s-^bv9Z znVppRBQiQ<{{tCK{xdR~d=ME;K7@=WA4W!#-$zC_@c}ZL{5NDY`9owh`3N$atT6kU z96&}lk%x>Xhmg_aFfy7v3>i%>Mn;oIAfuZYiHs(nfQ%-OK}M6uA*0FTks|?{=aO^nMLu z)j;ppA=VD`{u2bg5IhR;_(1Pt5cpp3I0O`)fPli25K#CA1Qfmr0flctK;hdEQ1}i6 z8rlH?g{L5(@H7Mz{ucxkc0xemyAV)#1_BDZAkfgW5Kwpy0t(MVK;e53P5K#C51QdP<0fhkwDC~hiLwg~h@FNH)yb1w@e};g< zk0GG&8Uz$xhk(LQAkff02q^pu1QdP>0fnDIK;aDtDEu4(3jYcLgD~}iF zfx*Q|kpJSuH@#S}*w;BY*&v_7tpM^vp z=v@SX_*o2r_^E+Fpe}(x+?@~6KhRqX@#aA9QV2xhG6<+&00H&o5KzAm0_qn*K>cC} zsIP#4`XvxhUkL&A&q9nJ=)DvI>X$)4{c;GXe+~lbS3p4hN(iW51p)P|A)tN@1k|sE zfD_k2K%IIHb=sbwUIzj7)eumxhk$wm1k~wq6zYu-P;Y{O6U`7%Z-IdN8VIOg4*~U7 z2&lI~K)oFT>Tw9DcR)b>28dNS;(&m90s`tu2&i{KK)o9R>Ni3_eJupk*Fix2CJ3nC z46$~g_ZA4KuZMv8tq@SBM-!;0AfWzv2&mr<0regTsBeIPdM^Z=*a!jjJ0PHbCj`_t zK|uX32&iv{fco7KP~QRp^)Em`{U0FUL>~myw?aVuA0eQA4+PZjg@F2f5K#Xj1k~?` zfcgUvQ2!D{Kkr5P*?SQ|pX^>VCVMZU2L#$iM=R%yn7Kl zdc1p)|JT04%)N+iE6%26wkdOz_@h@)pPf>9N~KQ4=Lvk?L;V!Y*#dm7#HSe_H_-#h zJ>dSU;in2c70k;I6@&|ijrQ_S2pFI*fhC>~Z^G^}9Q zu;B&aqT>7z9pxbv7v<&W!&rVWgoJB;2$n;^AaxBXKQEXo1p)!`AUrHIrVx#)Z~_RIy9#uCoecQcLmo^fy8;c7l1VoO%s;J3Gms=H$b{xj6(*4`9bJ@ymT(; zHJGdA_*{q2o%nnc*z@?jkNoMLO2uKc2cK_!T;s=fC5118DY~DYj?Y=hx8d_$V>e++f!A+*Gw%2>&lgU92uqpG#exs#Eo;28%Id7Oj`0#;J*^$*D>;6D@fv zl$xx45k2^%YVo-QwO8ZQgwO5xY{lnmz<1&EV|;#xPyXLAKD1swjSqqgKIl2neeFV? z=HfxrSt&*9k-k7r!iSFCF?U0xv(&uQe1%a;EmAe9C8{>H6k~L5smOfKIo-*${Nr19gZbldy5WL4R*lag@K1IdwLcNJN@C<6Rw*8(Wgik(rT&7bR$& zBSoAPjkZ1YnLxyd5+d})FMOxHa`+=BLmSy zELjzrCSHMgFzIfP!-nWX79N8O)Uh3;Qy%w`c#KR1f8H1mtmBMb8f zM{vf1bd9#)Hjt&i68+1qj~epuLR6PdZkTpeHPi{D)S^-RguX2MmWmrV*d{_w$#6&T?1fYCj!pna!J!@@X&E zfMNo9OfljTzv+?FU4lDg(Dq{eFqLz4&9YWk=Dg;Z|1jHGV_aa;Toi(yeyR)x@~I{-FCU9Q z1;e^zXcbXS(+_k8sl0)ZKmlnOWM&T`c^V0ZjbOvZR4`9Fr`f?b?jm-05XrmyLNS%M zg|ciTKO73<0Yintzs0qHvf4s^#s5K8d-P`L{Uk8@HA98|x`c$ufA|Yz!zTX`u#`zBmm zWeP>!(x{x%5(H_0VvDOq$^k~HO^PdWh_h{a3H#HNyXJM_!6h7tc zMd40UnBvhlnLbk}_kNDT1Ex@+3)@VgQWqXKg(_XxVG1+7N1^kqDa_Ws^_#+(-s@=R z2dW75D)bdS5933RP$$i}Zl^5gzee5Vd3cO^I}+1*Gq6yYCb5_%mE0cwIx>XPbZYe1 zf{vDW2!;OytYEF?y-(Rok)^MG%F|v@P6FNg>R*C5<6DU;YBsp_o43#dw(^D%9^AU) zHd7pRR2L84I;ycjd811ZmVvETn7We=qLIMXW>cE@jxMbjwMKc9$%(+$hEdlmZ;HvU zGOSWlT5d`+&w#z)*8R7d;vGwLv7d`C*Xd#(7ys`qy0~xs3EI(0?|xIw<+%5>F7LQS z75@qha$FBvzzi6pQ>7V2wQ6?~PdXt4H3RT#m6RIuhPAcg3i zNd>!v`JOQInb{h`PGvEFLrn5yB5-cV*zBmtWEP=lYC4zs)g&AIYPxUDuF>t@16;Q| zfvvB5Jd@djqG|W$@B7uPe=EC2TYnF@wl4kuJRJ(y{ZCu(iTKs@p6yq2$EDddy4@Dw zy4~UI`(3wYGOt9@^y=;h{A#}Nbasulz6ZFr{wcO`?^~J7T__ssUwq%M=7Ev8?N}o* zsPo`7znX^^`_(*hU3QI*)dcViUmv|QlUa|VWc)VD&|_pDz3MwkHum|qfRAv1SKX#`5KD42L-t6=)Ov8FP#j; z8kN5avr?F{e)^YWGCzZ2@eH(nwJ=X%KVRv{WL|)x>A?^0@~heN_3RpL{W;*;<8#@@ ztFLD=pFq)A|M3C8n%4uk9b3I5ozZYzg-=_8>lmG#^c2J(NqM8Z$shWJ(IDsf7`MCQV z?*ij7D6`USP;nHBR_zH~izcad^dR}%3G*gkOl*J{YC1l+t0SSCR+6U(3)0z6+?4|A z5b~b)pCg9T2_-#h2LruzEwwR7i0=ggYX8Ea^+OU}TtL)Y5! zS!Hv}W@pk_w|sR=GC`*!Wo71y4E=xU#TPICtWta|LZ>ElG*Z{SwyLb2e3Ro3at8T^ zSR;;0(6{8ej#vU&cutf!vS7eB$(jR>hFE>PA=Vj%9aoHWZu2cv^fDM35E z6Uo|`@S2xUn(bJt_OsR)-bU8y2CYqg2+$V-+8TW8hqd$5)?U!QE%CF)zFjwHZ5pfv zhXw8odfZp?ZZX-@BWvs}^RYLA?X4QLce=6nexBH)vD5bS91U$R$JkAIDE#pE=r;-v zhi=jKuC|5kOWPN=pHIhS33D!pv&CqC%&x4`hb}7npb+aY)>)T~ zcj^O5-E^X^I~I+#H>gB2j{b1am{f_Dn_|)AQ2yYM6P+O*tylEQ^oSi?gq|SZ6}jcXUM?J7YIQ&#%47*9Yp3@vx;~?IL}ydwylbko4J#jt+4&C|)|#jTwWV z*c>m`L$lNjhtGbPb8O7a!!_7xY>n3?)p0}#xUKQ_rii}KT=JAS-VJs*9dOo!Rc7|w zs;N@Z`mWAseY~}+tzB$8(~X|bJxkXO4yHS}vz&S?jE=aO@IfWaVmd1HM0d3(aGDlt zh|o!}iY5>NDoU|8XO>^MniWE$VlOV~k)qSgbj?K`-Z61Dvc(2Ao@n00#$N6eg&K7LDR&`Z{uTt$>tX4=R+EiBp)EbFoxrH50`fc$n~Mu7T^y(N~Q1>7E6o5b97)HPHZfyki}Ryv7U zM$DErTu*4k^>&mocH~exUd5&KGNBbrp`WFKy*R@@4Wwx~%a|EGgzsSFStF4h83-)> zYfyU}3!}NNr5*i3JR%zPc9h9 zR>`p14r5Ei6O-B|ASYq;zlN9UTZDs&3Hj>06B5 zp0gVb?ihUAw1Rnv$x7cEF<<4)@wQlbVqG~u7|PFb$#}dqQ9gLvGtZ+kJ{e(Qc5Ip{ zx}OZSv7`Iy{6&k-j+9~^ryhG6>1kAd!GZK{!WrM%k>14Of^Z+6Z0T(?`cTr3@#l>g zxiPS4cqsVfSWrwwjw@90)cYRZInGW&dSuR#g7j3KBL(>|-mMCn2k8tLU%_BqKVWNo z64zETUcqJhx`;ox}XMe|=}949wAO=f(bgP+GZUYXHJ_}4Q2mV>Wj{B6edIWY3~Fn-X%>9q~= z|A>R{VSFScC3+2k(r+2BaPXsyuW;~*_;y70I~@E>#`_%nvyAU>@Hpf98DDGMQCk>a z1xYEQuS$J`@f72-E`G%LHpb^M|BsCCXM7~%MF?f`pU%7~>BD}=>5NOLU!!Z4TE_S) zNJ^zfsAk6d7?-%+$ap{FWz2t!@q>(u|9crXKON!Jfcft-9>G^sN)dgf6 zzg9W;XvR~FSF;_mOZZDX8dW zm+TZ&CD|a5pgBFtstcN5OEU2J=+`K9=xBsd*&&w!KLH~lNsdJB1}-rpbtJF%!Ef-v z*ZJVL`QRIT@XbE>JwEvHd}FX~mqR_eThDX0M*6!CZobZg0B(u&RE5W`oOS$IowJU= z0-(;l$qrg{YX_!7n!Gfww$ zf|fFV5#w~5pNr3j_}dUlI9t|B>=K(Tt1>5OnocL$sBmCPKmv+Cv{5vfE zITrtZhu_EiuUdS1b`krJSh(%yF2~NpZ07}wPyg0}*!ii$-^u)6`0)R?!{5jJzgheR z$cue>2U+H;f_bC)mMZu@#_5%EN`lLC@L3N2mZ7Oy#$}w(zSi*Nh?Zw_A` zJr7uX+x`)UKbIf;g8Up#)wcZ!jEg@V%>T3xf1$${e=fH8wm&h4zm4s$vG}$>DTjZ6 z`Mo~;uQ>b&f8pKc!++7?U%~uWExzsldk$avd&Gx72G6IIWISd3Cot}gf4Re#@t@_x zzuMu8Kg|~3_WxFgFXP{1@$K>dlEatrf5?Zw)8WhbKj*{$rNfu;|GmYx{r}M6Kg#pv z@jmU2=VZoZ{J+cmX+HdZhcD~*HH&ZiBY&?W_TOatMZ9mh{w!u(_%dIYSbW=llf#$z zX|?$FeBJKwC4TPk;qP_$;?K`5zU|MS9KOWQL5pwu6XN|$`YZ8M#JD>?55L>ti$6UU-|p|19KOWQLl)omXQ#uL z_@S3;D7o?TONTG<^J^deQHL+_Q%nQK_HF-9Wn9K{0+&y>__qHSIDFxmSBSIyzmpye zk;MKY*1wN&cYa@Y_!2)qv-q|@!})+s?8|(e#JFp}!r@E&%(nQp{RMm2`1y&& zx9z{<@Fjl!=)<4Mhm_J^@u!+`x4)M=e2Jf{Exzr~4Gv%8r`w1BWrr{E^RN%U-{DLA zyk_z3@%*jBH-AZhe=^eI+x{1i%G^(SX`qlsG496mQ+OMXl8mRs&r6KEShZT}x|_}e*t9`xZqVd3`q z13w<>xGFaxrmwu+YP<@_X-wqsOyeihKq0aDG@j(=FueDv6CD#URhOq4So146PeOi| zqV7<;2?CMm%!-oWZ}9iJg$7RJat^h^!4L8Glgk{O{<$hjtBpw8xsvTSIrzJ5C+XmF z?zhgt3z)yr!ACN_#ldgl?=$y0`0tqi6$ihK2X(uH)9;&<9y21{uiaeU>ENYYe$K%^ zVt;<%;B7oU|Ki~9a#^Iz*OlzgVTYfNIi3gMFXVEugWt#FFy6thWqgu@Kge-g;o$W9 zDW!Q1K8wps9sCD84wpN)oZpEQ|6gE#s(4nCI4PdWHxF84e5elGvS!O!OMzdQJ|9G82! zf8ys8?B^Sd6OE@zkDJ_2g#QZjk2w4a&Bi-XtStOB%qwMF?AJ1Xj>CVJ{a)zsFJb-) zhyPP9U*quQJ)|`b|6TUK+u_%<{d*n$bS`gm_#Mpuw!{A#uZ!m$ejoGqI{fWCK5sbu z9n3%E@XuuXM;!jE%rE9RmGS=um&db|@!!Y%DGvWU_NU6>%kM{%mmgS2Et`@DDQnki(bz*^>_c2=ndpM!GNTr+0qL`dYzu#&NyO7rUuWWnB1jAE|Ko^u89Qc@Dpi?Jslqvi>i3 z_&b;{&$HqW{n;cX`Q1tU+0Xok9Q)%Kf6}qPiv5)F7WDtKK5nD{+F5msKZ~y z{GAT}M#lRczP$JLYlpvAkB(A*bog@rFn=UJ_Ql4!@fDeUAMq#=q+DS26y)!#~XNJmBzC%zwk- z=QDr5!|!MQpB?^9x>rj5&Ed;UHB1AEB;)CEyp4A7Ej$jVFiyoeTGL$EEp11>OH$29 z<`AE!N+U;o@Cf6?wfU+nv91lTibEzljck@&XRNiZEJ=SUP}WeFtW#yH6ZliY&bTS) z+J@NbuBK>9dt)3Nov&NHx--@d8Ywf>S=Wv~iORs}pGy)I`iq3J`gmJg41c0fhJTJJ zR)!b1@zOlr$Y-TkGyY15{!Ze*n<6kkVNH|99Se;- zc!H56NSBvq`XBn5!ZaedNy5u;J+=)2srK+83LtN0*e-w0!e#*gO69lvG3T$`lv+BCXiT{x9aQC$m; zi;>>1&Y-JO6-K15F82!5;DbFT$`jhoF*2j+nHFG+X_yu_E&NH z@_sb6Pe0AL?XL$$HpNe5b?V`Ri{J4+CAhRN@=jFb(r-G`XxMucA)+U8tA!a2bG?uC zZH)4wC-|d`x$*k|>&tV4@TLD!egv6Z+1g(Qrw<_ 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 29fc76d27930a91975d5c62e5f323d24887c427c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43424 zcmeHw3wTu3wf{adnVB;QNd^cAf-)*#KnO{Ahzd9a0)v7g;#-`Ayfv>T6O1n$4WXup zLamBkTjQfjt*z1eptgk|8hq6oy=twsH9i~Ewo#FCTQ&dRT6^!AGbb~Nw)fue`+pw? zX4c+ot>4;fKh{3`>~qfK>cZtq9EKtE;SdW1JO6N_&5@pBNAwjO~Rj;gg-M0|HLHx{3QJ4;QR5hA0xp?0V@5I z!uZad5I~CZm87(Ybj4nwXc)&=TqKE`3}ynqC7RtzIM)^LV0SE zeOowRKzVA4eG$%|NO@|4ef6Brr#w}CUlHf0Ql6^3Zzb}1e_7V{@IK3Vu*m5u<*!IDtjx~FBz#ccu z{x!Qu)ZddiAws+zl+*gV4?3YAY#SXV%<|Ch?_RU-3P3U^ zh<%NqWFvUZCp6c${bt_R{r$ncg`J%Ru(G%C**%hWcY(IBR5W{K!m)n*rdHC2ch5o0 zMfIKmM(=ohNm+1PaMS8%I)j@FBRk(9TWx!#-ept}aWfV%xA$CPv=#OSTdwLAO_{rV z;P<}w6|B94uiz#~+IBxlGwe=yDt1jE`62=-(P2^1ED~i8@Bw-|S3(r^;TbZ#x3H%J zovSL>lnTbdl?wvm}VV8f@xW|6;X%x_U2IyhD8~>pBxu; z^LOOtH4t^R(x41>wSEU=OIK?Hi0Epi&Ot6Lb4?&YUDsJrBL~UIJd6F9D0eYLM_EL3 zqNqv|xhf$7H$3|P~YK(2}s+zjZUL`caLZHL04PhTYC%lgD>_~NfX@llcI&4ON9kxVLh9~ z?p{~hQ=1C+XFk56kQy@c@lN9@E-qp%?sxx;)rsbQIgECYtuHO2oT#XeMDIwEtr+U4 zB*oNQY+-6p#rT)N*3A}CteYxHba_HiJBdOAJ$R__Emgxepb>4*FaE(bwE3!=qW7mKbhfTdRC%5!qVhg@h&PR!LmaITmw^;~VBmi^$e6#R)~+FiQqHK@AfvJ+5tj z|KG9R&xn>jc_|wBYlvD3_Zux&?RR8u+-!-8Sgg(_#n+%%zPFXm5PbrPRY>$0NUTPp z+kwQ{NC*<0t3~H)(S=%c5fTiiGY_NIYEh{cl_SwZy>&3y(rKu8de@Ngq*w`K>a&B0 zsVvklc}#7UX1K>EMqA=ss^EU0QD_fJNRe^1d(&C_gKgbGqm#}|^xYer-a+=C!2iz8 zSqX+zt+bM8NZn)+*@jdzM0*Q)MgH;C@lJGYTG1Ep$FrGFY$&9DU?1EAhxJE)k9D_g zuw`0&uno5TK()Y!maFZ1TG+I^Z2_t5nr3~9>Ew+eagOJY|OCVCC)wwQ`WTYM?@ibDc&5>lJ{$hWu9nzz7 z!)-JG-+)NXk|~)RuTD5p?Q3`_%BjmKf}^Z4!_8jpG+_rt^>6ZwxnV>5{+^5-og zTU0y*k&23a5!4{w5zAbzec{QRhD)-^{0K{7w(uyhh-~3;EJP|iFkshF-z1*Qzy8$T zT7ymITckEOifuA~3?daGuFQ=^sF5x)HkrRcA#yzwyIR|!Fs7^ZE|A==*1Ji)tMwj` zqOR6^L7KZ-e++_4fcrqUceUORg6o3qAOQRX1b_!X0Qe~g01tuy@G}qqehvb_Lm()q z0|bDFK>&CJ1b|+v_2mrqZ0pK?v0PF+- zU>67q>I4B`HwXYvfdH@v1c0YO0C)xjfG!XK_JW|GXF&jX4g`SbK>&CG1b`Po0QfBk z055?6@Sh+ks2c=;mq7q{1q6Wq0s-Jv5CC2S0pN8I0DcFu1zkjotP~ZTy|LgVR>I)i z{5J$Au1p3wLEV}>IBx`6#e~luoX+4B1SghQMHHD-eBvcmnzWH9GIK2=TV#%cNJr*| zSY#?M;v!Q!Vmuq~OM<1=)qmysurIdgyw@VKMQ0mCDmvYn8yk{GXOXl)CotvcVA1*6 zUt-SC?w!2I+fPAv7?;RPEl=jg5Df@5AH*(xT|p@R6*jtB15m*DSqOshQ$Xrnt+d~O z@v|5N906!fB@RcBd z)BXwIt3Uuh6J$(R>uM0d&jJDbY!JZD0Rf!$O#nX+1n~1g0KWhP@C!izUjqUsE&>6Z zY7RI}Pk5d`os2;fa1fUg4q{8A9Wn?V5Q{i3ec%aH^83XtZm)+<2( zzX}BK^&o)L(gg4b2;kR%0Ddh9N^b!Hd;BM9K%1p)jz5Ww3&0RJ8c;F~}I zza9ke%^-l^00Q`pAaG&}2;f^m0RKJ+;5UH){sR!eZw3MU77)O11p#~;2;jGYbgH?? zHE=E>R>HZ+`1s$Mi=05KxhQMkTto{6%tf7p&qY^%#5NMmMfX}nwz;Scq6Bl1^1?P3 zNk?cdvig!>F8X|5%op2SG{)kKZ7%u>C^Z+EgU&^-O7k=qDMtsJi^?s|*j5UgxI~_d zyzz4pomS+ebu`UIYoj*y_I}vg-~ZemwO#9X(RS@8v;~6g+Q(EAERa=Uhz+^$8C z)5!}VPusP~g=MY@WSDM-*m&DPMmAgQ$3%T3YOsi6+qK!JLv)Ts6gy*uNHotPifz|M zNOY7%6o~dlCyCrrG{|X0I9MPnD++n^DRsU-t7Elm>L#*A}!gr(rvMg_OZ@fMM-RmLYQNw-SklD5B}v|)a0 z5!o8%k%S^{m|LaD-Z0V9bclx9uKj`(CqohI9Q6G>taCtc(xt7| zN3qTULCBU$W|?G`OJ)TK0F{ziC7BmX<|QD_7{=CZ*$?GXU$gXCIxcoDcn`6I8GDe} zxmlXw@jfvcsAE>4B5Q!A*rCgm__MUymc>cBosC;B7~;mwoA1VY(>8AUEh5{vc^@Ku zl5Rl(@lIGy(osL?9Bp+)o}=SjIo(p8E#kr!k!@g|2a!5QV{4Y?S~$av6;tG4mMd*o z8q0Q$jvHrBy%RHJ8)tupNR2aW&C)tqml(U6pHJPh6N=cwqAgY49L-09H)3ZYaUIo<{?4K9|O;$)sDe6{MI2MU28ejO8NQcKwVlIw-Lp2|wLC zIDkZi5(kmsdt0=n%EO4ZR9Ts}R9RW{D`f`~tek=bE4z^>BFiQctelEOge=pRDl2Co z!OA`)Sa}2zorIz-RaT}gRaT}gRaQP6305AD1S=njgr6+?kznPckznPCNU-u`Bv?5c z309tpL`2`77-DO-1&tRyZQuAu!~i`yf|))^3?$x~Dni@VMV1vW3U>5UKD;x;4uo zQX*|oh^W>YY%>4i4>4zKllkFXB8N!Qt=Vl9BA>zrh7w)P&!dq@7xK-Nplf*E_ovJE zKH|`o`!pJNwgPx> zssjl|J%R+I9z}vtk0ZgT9Y}DYPa?snUn9Y&ok%dM6A4B=g#@FXMuJgYNN}OgBEhKV zkzmw|NHFRpBpB6=1fyO-f>Ey`!G*q#1f$+Sf>CcG!Kk;8VAP+GU{nthjCvP|X*wMB zX6(M$(#pCS8yAk^%^{ao+mbJ>96+lmux-Z5B@G7xmRI$IhvOB$kBvOr@~Yh;vV~(S zL^>R=jfLaD{aCfU!rgbiS3-j`SwMdJM$8l2`D(Pq6I($36DSps2oJi1MWZBIUA-dB zQ$Qx(jg4Dfm0Fy!1!NnS$N`D{--}QqU1Dr?^(X~o5ftU_C@!vPcNF_+t4Lk$j$%J; zHFEWGcNF_+XCsIGG};}-3jbUX0BCmv^xqw7z6;?9R*+=2mrJ@ih`O!0HEDb04@gsfOba#xDo^a+8qU8 zJqQ4_J6bPyM**PSQ2?$50f2T#0ifMc0BCm<0NNb|fObdqy^Ts{bJGeLlx1p?e`5EMHH z1i0ftfSU^f+zBASod^QlNg%+@0|9P62yhEPQ0&Pdzy&~nTL=PN0SIu5K!95e0$d>o za7#ddTMDurfl1eoZgsb!J9e@rmfi=6n+?uf|Tuvw&8!!I-#x#Aj##CfVTY zd6_|p!rvwBB?|wKfYR5G>*LFeJ=)_88XwWq6w~o)z+f}b8jB0IsK3@CvPFFbL@MeL zgU!j$$qS?nih66aB)N|4?vAyG?VS7tL@MfWAB4^@s5!UJ_~`WT6-E7vQ0!`L{|Z~& zczyu{qvmdqiFkei1cT>Z5Nx9T7zAVJK9JR2t@ndqC~XI+#`6mx7<3PS0RB@Dz#jww z{AVD5{~QGHhd==D00I1A5WpV+0sI#raN5Ws&0 z0{E{%0RIgLoY)Bh_%0B@J3#>74FdR6Ab{@y0sLtY!08Ecz`H;I-wOgKo&^E?IS{~~ z2Lb#A5Wrsq0sOZhfYX!hfd3~5;N2jAzYGE=UI798zd!(g6$J3tKmdOo1n}R10R9FD z;J*g}{7n$R{{R9f-U0#qk05~m2?X%BK>+Uo0sI{hz~2P{oSwJ`{CyC>KLCLfAA$h> zXAr=9K>*(e0{BNDfPV}E_$MHM{{;l_zk&e%HxM|{2Lkw~Ab@`c0{G`3fbRzZ{0k7k z4}bvvcM!l2f&l*CAVq4<@u)e+^0WrA^qdp7XZ7}PG3Q`XA!(B9^~6tW@CxJ|pjG^j zkKcRU-Glg7PiqVj|I$XHDd<{@$hHEhfGEKVM0pW+v92AV6-bfAmjo-2mtW-iurIc` z=zv9Jn~VMck(!H=-XY}`$RpAQ%|*)5!7kVrTS~OeMO9p4qC2Fqx#;jSF&72M#^#&* zaPMzN0E}OrMXR;8-{Ga1&x1b>w)F+u{;|nyOAWR>l>)C))Ce-w2>Lj7)*@EI5%j|s zU^`{d5p;X)qpN5dAZ1V{h-(NUPiIEuZ+%c2E^~A%&(8ycmyY$X^R4FR_Q?0e7M`=Pt$*R!%i0bsJZo9oYYSH| z-#qEuqx^U!Z1Z%YXD*-eLEayNyT5YM8+N@nKMTiO{}MhjbHWBHS1fP)XnEU##jw$z z^;WQDj}biK>wT zfQcN9&rk6A6vif_0Tnyu&hlj+7L)+l29Sm&fgL zIGri{4?a`*Q}H^e;Ye{B;8G1N2ft|QHC#>)Z7D;|B8w&s=cvR2r7;;4@4FigSc9Up zVL^<5&xT7fqVlM9w5ZeN1oqnB@c-1v>EaA=PUM0} zu_%d@S~LbtqV&wjXfZA_DUv5$ZX8X-haN3K-wkq{Am&Bp3$#*X zktmET5y8kZv=#a~$uTZ6J~BZZ70DJ;Bgcv95uAolq8B|hN{q2%Fh~bI?E3cn)k7SE z8vh1DdwJhBKZJWjit}cRyqO|@rdU>8T~<+C?O)}eREn{jlY`$Ts4odsl+}jHtE$Ty zXOz^gY^W=lQQNS5@ybOZnF|#x%@3`b)EHWL_PO~vmEuydsJOPaF6=L9C@T(^`Nc6+ zwI$U}rDgtkjp0(fU7u6AAl1UGs;L1JuiZ1B>W?jTGlN{I(+$s>z={r^O-=4JKWa72-&j#Qt**AL zaav7r^YZ1ZPGY1D<|hU4=KDi6WFXX77S0Qm)mP2U&Mv7eZkUocB{5Fg90ZqtJR$AH zQT1o$qxvhP*#QcW&kdn1W&fh}$inP`|`@NXWw#5NA&+#cT1$ z`Df-$S+HO>8MfLjuWRsU!?3?@X?!I_E!chB@!EDtbQ>R4zopQmX z(&MVu$ckI-QyQIR?S-m}TGaaSZNKRVdri+P)kUQYQp4D3&5f54<%1n=(k`F<=;?pxp!oR$J&HF!Jzs5>Dw0@1P z8|>@eL+e+*pg6RCwJhY2#Hup3*gUj;rR&jezJ5Jku1Np=we1Om7}D$Bgr(#uWOPxS zD~iMx(JA_b-&koxj1Hs6@HqmGdPlpX+aa8}&LXGyMmo9Qzz&r*R9Vua!Tr%*59YJh z=@ZH871Qx2t-DocWs>%Z*NG%-L%U8#f_5IL(_`5CB9V^I)?bNr0&#tsOsC$`@5y!A zqhn(*oop@p{^!Hx~y6|Co%v6ZJuKxa4 zLC^URKiLQRC}*oH6!BW!%vzzb0V%NrOm~lt?=`qQAjMz@NIM~N_RUS7=@y_ z%u=wk;CICYt90mvuD3?c35mSB6?o({NZlSdj9rPOvbTp>~m}-8J%4@%MdGw=vbm%-DsNwnqls=wO z<-BgsK9$c_a*6)m|JJ`_Z!hUS)vu2$+NJ30ihii*0Y%+vyo^?KvZ8Y=<7nxkMJM{R z@r&n<#S)8XB*9w8Dr=J-AO z)iH4{^qq!#DF&O<;i6@3N{S0N0)^9b)dTK$gVb_EtY#KM&G7`vaO8c5I1W!5%5nUe z*fU#*lj3=kOqrh7h#2nEIOn<5U?k=G6_h*=`YD?! z2^;T%xJd}hH&M6j&E}YzTR*j2*a>{_=OE z;?1S>SCsa7SGtk@n$lyub5NGMpVI!+NrV*!WwKK*g+FeCGr6g&N#fwl+|(P%l#?@o z)K0SH;!H5Li!g4^tW3QJX51dmoSWK22E4|DaIq-$C#05UJc3MR>RpscH^}4q)Eu%l zoHOB6nrqx6jU6D(sn0>#eV9Ql9!cFsYGVxQw`)`XNi`U2&?`ADsl`;z5yrE~T$k#H z+&$UY1F|LcCGvWP@ftGQQeUG?E@#?P-=a(&XSS!lN11%ibfkVnnVH6Y!0bppg$kX` zzICRaN0Q@>mr%~rBCQ_d%l#i_A3Pc3zKbg9eU=pNrljzmNgm!q)iu3GQTqNRVEfRW zSAgd>sS}4$r;^+0FCjr(>Q3hVNpnZic<3er=EvZ9npy7vC08SvaV@?K(>~CRJN^bp zCawcbD%QF6!7F{8@XkmjzH@8G)xNcq9p2B`zV*Y)ONB8q6FkS(bA5AAZR7Ah6yn%g z>AMCx#<&kSw{rN!!k9!(IJTA!zeE_5WxB}sC3?ZgmbvA=PoZthJP!7pTYJ{~3^MWE zC7kVC?;B3pUB#T;vfkH8*)Oi-Z1+_oCQ~-gxK)a;8u1gdTxUGO`Hm~aus@=Ba-5sZ zAsdWb=X@Sosuv2wsCmc%sm0%h@QeaySUE)G3^SclL3k)!SVWF7Ges&0NOPBPOa z6@;gpL{t{}%S;b{yM^Z(Eh5*M>E&-zc7G);|TGt)u=QVSswBp$8+q&QrAJJ7oPLlC=0)LO+1d)>)E8)>}_x z3H=U!O!6_3p6{+^3H=;?RKn#}fzRcp3*X5o!t=fLthrWeo`2)_39aw_+}>sYf$YnC9( znm^Q<9^vzl@7o_?%^t0}S!?dqnki^QYTXCkVoedyevxK5Jp5E^qNV1N$3JspdEj;W zwdOloa~$~WCrUqs>iSSFYZhtEG-TOkq1Hs{ZooYcpU;~0T5~pOQk>Rl&C$a5B-QA# z4Xhc_njx)uo7VIS-zL(0;^(Z{qcz)*^_5Wc{qk9s_!g?Vas*Rd|EO)CwB1zKUw_7$ z0j>F4WVr?&tY*2cDD6mUzn$a3!5Gw zMC&`}W=dMtcQ;d3t`&K0my&xwI38ZxxejEblT2FMx&FQuY+=&c&h_Pulr-sN<@$=! zK9kmVuCFOQ#-z2KtDn+-FRkrd!k|pHm)3T8c$zY~URv9^9Gsc!rL~>Q$(ewc)^;uz zXM$c@+qvAFS?Rq8NSB8*=Xz;v=kgjwaIwfsYdcq(QI1Tdm)3T!bb~yu_tM(VHJmeH z?|3pW(x?Y%_R`wUbr`R#B3_y{U1JP7cU|kHwVi9MQ4NI_FRkrdM;KQkbDh^u1|}O< zfNb&7+Rin@*o@3JFRkrdxtwYD(h1a+$C>S3THCquIn&{#wVi9GL1TP}m)3T!+3Z`V zm)3T!hh>LYr27uC>r|ZhfmsuKGO0kFEML&fu(C_4$gCi>~^{R&Y+O`VMd4 z9IyJacfwV*>YF0dYSnj~%&Ar1f}7a7UiIDabIx|FRo@?;<81r-5xnXfXS^@9uNv_- z)oG2<&-sX22Hs^Hj`8H&+Ii)Ozmfa{V>ajeu8_;Zsg9ML-*Ux>9VGvb;}XvIG>ts$ zhyWTv-lia$3d33bP{RL_4N90v5*)``grmkC8DM5Mf5%WFjk=B+k2}>NyOWxa^R)83 z0}!`a16KNW=(^2jN>clzQJ$JcV)@$;=~scnB5EdPI;Db0-$tTe07Xs4%oM30(tn{v z)OyTxNd?TTT0{-WOt(}J>HA1TZcv*t(<2o`dI~r!qUL3$DHTNe1TCVLW~Nsvi1ZUl zL>^M3Gjjxg4;SfYk%;OY(IU0LH7~vy9Iump|B{aMdae0@)>I2zvw9b6)@#k%Nt674 zRcpc~EpW~HeXMz%)_fXSUf`MyPK3GFNk6X1rLlw-xMuhWme6l(#w4`BHP;=_l6$NY zE_XTjTtT(KH7_e>%?_Qfty=%L`odmWNnUA19#& zuDOlQ)L!S7I0^Nd`NQ{E(h(=21+IDLS1jp{lh6X!yz4NmiM-A}tAxkuG+HZdgjx7X z3taQQg{7P#g^`&iR|s`B$`t@*XqR0~}5;gP(g%GH{GB~6OcZ1B16 zYJqD$HlH;ET5}Atthq{Sss*n3L)is=-ENxm7x~rdr^dJ6~hXT&>xmH9yjtYJqEZ_Os?}5MJPS#RpvAjdz`D?Tw1Bnmkp3P#hun*F7;^VgZCT2FN{3vv zI^@nLUJs<5Plww1l>3iRp*_r$VJO1zoP(0>g&2420@sD*hL;kKtwru4wNpD2c{*HG z*m5GQV{0`|yp%G_C<~jzjY%0J)0`ROGKL!?Jif!g9W9(0C#Id0wrnKM`4dH2+5*Vo zgG#~^S0=bPuM#0G&tyTw9BDW+($WZPAnQ$!8k!63RF!ot8%fzTT@1R(FqVxZMEX&% zGXuhm9OLA%(u-rql4F4}w-k&el}s0w?$SHQ74q4l8zNn{?Eg}Gq@nvqc&J&kazw1bscA+@ zS&}A+jS4+LFe*}FowjUbT&KC>y9GPYB*wU*`eNMZ+KL8@b%*$jN;UqOkxp-*;c?GQ&+gErYuxbR!mu}gb*(dy@7nVInrDw94QX> z7JM69+~y;WV@8^%QpO#2e`wxm-sw1I)CSIPao=gD&P+$PVczYSI*K&azxH19&*sHY zb^M0D%)98@k(b4pcK*IwvPN-+pD*{e*~!EKE>^v_apNz zM|GB&@0d8sym%KfOR~&%SbTBnsJfDOi^(3h zth9GZ5_=iSUQx{6vC`gw6m5^%j_q+D4Q?+%+fDwFdFQVjcn94GVKh3#+Zck0qwe1c zw79U9Q5PR$dGRqO;|dX^;|d|B;|d|B<4Q#vy>Cj9H*alIRdslJRqX-_q+}6CA*Qd^ z4;wnf?iw`2#;Fj?;_zyh-v}|M*DR-@;`BaA=zHPKw?6H6UaEy)f&u%aHE$e%o z^YA!(-!|GT{;ApEpqve|bdBvTxcHlUs4VLFKwJDbe55vX4s%SC6O1+({MQE!re`(9 zoQ|+`;DRo}6eH+QtIKmN1*l%%j&0%dorBK_pHnFP4PSH$sXdQpExZaIs%@$%s9jcD zP`i{~;%=00tK*ILP+fItsII&mFI$V!x~8?&Wg@if^w5%J%L@hJ_;0!|EG=!&$mP`y z0OQ3Syl$in7nW9(HLfg!iZVMBp3-~Xv-9%#9bh%jSl^V#vZ1V@I9%7j@5^(Ujm7KA zLS?n3qOlTxY98;shec!6Ve? zrcil9*>^%qgO?}ufvO=rtSW6@#6K^vG%t5h_1S{nV8IXm8h9HaUWzzE1Xa41^Ah4hZh!rrJil&y8n`=(h+& zs1cnnLKHc3W+fY;G8)i$ajmOsB^jX8EUA_@`s-IKSis zxXn{vzHUUT!ocK2}@r1 z>h`e@GU`qYa5^IlHZ@~h*?-I>kA7jsdQzm;i_J)RC&bU)(aV8&wd2{b80-Z3!!CO5 zKuZW(`44e8acMr+5g4H5#M)$aLcUXk6Y^8UwuF3F^m$urAx=Ep*XaycS)6v_E?9O- zBEBgC3He@8l#rhqeeTv;h*P8q{rqt}f0)?fN>pyT2)GmRGosHe$J@yif%%E_ed3d| z67h$N+_Mw$M?{~4j<-Kj=;xo~`B}n$QIVC!X(xUlD$(=0PBB^>3?i z?MBa`J4CvuxAi-DPW*NoKS%L&NhLH-e8eI81!~5T54ar{|cj zAHmc7MT)N zJ&NCLMNIAN15P`4dt47b^Z=6~9OEvlV|>iqzMSqv>%w zRq^%1XB3BY&_l6gUq5Q5{jXMh{a_izKOLJDUq43XXRZ*pE53e+O!K!ZzJ7#E^XZWo zDpwQ)1Re4l5AG;_pg?jo{}siL*!b^&KUiGrCln?MdFZ&V4@%3reRN#wrw?>I>bTa= z9%#OfYyISb=IglD&mCyKj_VFpu8vFfB?ab0iY>$u)xz;AHolJQ zPQ{mA#o}7uCD(i%*ZLm0=KnoOT;nvAFy6oB`C+&yI!9Z8B939WHe>T2q%%fe-)Idf*t#ztZyCG76hR)vZi8j3H& zmPWYYGEv@u?Xpm5Q%%iffLL-NXolld6W?Wz+gGvdbPTq6N|=FrBiJ{IZE@N5aE6en zjZN4bh*O)eklFV~Vx`$7F?)7N%o^?bSn39|=4`>%`7J8j{LWs9I?k#Kdu!aj7UFsQ5r7q1eb zrOQt*ShzfN`jRDQ7OoDhURbcakV?Q42_>PDM%)d96}c-J2rON`tYA?nKPNwDwy19k zH^y^9Wu?X8Vo{DcxUtM8lJ?jO+-s|sHv-!8r%YpD$0p8jVJ+9#wnyGh%Jdh-VX6vaxyJ3J@%sAjZ1A1< zXndzLfSkbn0w$tDlIXX+{Vsxpek()c_5FlwRngH3iRCdLT2IqUz@^{b(D^`0fb{|j z@8=vI_64P~wf~AOXdjnUHNHsUixghhQCod-`>n^phmcvz*Y~Lo zh8Q+v{Xe$hqxZ9lB)(FT=(jFk)BTWG%h%WWl|>R_?{8I|sJ(w6MYeSP_5HExBB_!s zN%Y$vP00k^s3M!WHonHwYogXem#-fsc)fH(Iw-hs v9EDFSKH8j~R%m|GeUD`H=-4Kc@9KfCB)VL!I2?&Y`0w8-HG(#PEi3*XPdPY1 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; iD2z}`BW5<)q%o-^rb*W%HrNn}UoY!qcDlQ`J5y#S zAt_h`K{52j3Tg!reDkr7dFz7@sUY~~e;^1dRumKr#B=W4lT7YT5%es3?>WDFzV5l_ z-g&pU^r9gIFbSB3V~J6K>zQMIMzS;TDD=VV!tM_XJ3n{t7atJ1U;Klt_ltiSaylUJ zr?a<;2Mc#@U4HMu?*5O2=<-hSKpDnBkq`a@%cS8Zd(D-NsMv(Eong>M`=K6 ztARL0`o`@#fb^1aNdyo*;^|ypHkBL5^@!e%?#B^53)$>6LYR_bG5543Ug%HdE@q$4 zF7}b?%$ZMS`$ZpmAA?jT!i_Tk?OF8Mi~H*kViA`!Pr+heK8xX=jY8rmYk_k_yc3pr zzKV5S5RL|fxJFCj9%oGOTd#8PQj@bT>?^Y`XM;pmjp_|BMB(^ z>1x3#lipYz_+pS|cZ)WF^$?spTXv!9-KbYfv-2aR;|9L;>gxs26$-in6jW@wXSBget@Wg%#$itj_^+We@q}!Pc+Gj6V8=+OvBG9xnIrHPe*qj`9Xz~|M;m6 z$8hq`ef^wjo4mF(ZZz^1` z&zBlbPb(3h5!Eezd${LxKhH=jdWKKd-&8oAN&H;EYHl?`dkyC>h~_GDfm^q&(A^Bd zD%+tA)>^X(mPE_$+Ipo_^RD^0CV6{pEpRtZEZc$YRos&%^_u6h3C01-@f!^nA7ab% zL)XIB58p`Jd0RPhtEFp!-N4uJf0BvzR1>ZzyPHuA-)F{2H% zx-VqQJ&s>pNpwF5*I&#}qve)Sk53JYAE_%#fj~B zrgxM1xZbwjkZMua{X*Guy6l7PCm2vO*Pr3fkV&fF-Gutl_m1tkew2?Mn|$x7{I^xY my@=5_PPeCTQ_@x^RR3Sa^*HJKr*loRzpwKDDsGItZvPL?H!vjt diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/sauvegarde.tar.gz b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/sauvegarde.tar.gz deleted file mode 100644 index 61383fff860f7b739f4baa0db1e66176b87d4cae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4411 zcmbV}6|!@HqFHE`yV{l z^}P68_x22z824K=_*OMXmaGXtQxWdt!;; z_&qfm1GB+^Dp+lX%uT1Khjwq2P;>X&hHPD>)It%e7)m>Cg*Z0Jd%ioToRlij_es%N zTP=NX4661ruij@yN-?@p@fVQ=tM#B~SMrp7(*@?|N9XWNLO&vFKopVnAQ>^iMuWEM z*6Wi<(eEEmv%F}ra4Ouo3KFYD@4al2zg)SbYG1Xi{)};unl#5VPU68a?nEa%gvn20 zcsdt#(Meg%Wi6>-4i^N}9>@OUy@&k18JUA6&dZmLWsp1^ae3T-29^B#SUIHF*Zktd z&Fw6L?h!-a`$ByZo3STyXq0fGSY=cY63ohqBfOa#Bg}C^*muQ2OTSqpc?J_J4zM>9 zVclh1=jz&PpS_aLD_XAo%z4rO(L~XyP{9tEo>Lvr1jg0F?z!0u+0m6O>*6wr=}phz z^yaufSih(BSUMAU*!k$bn{ocHmsXMg^j5tj1QaMNP6+j1ppG9_cW%X9BSIS0N0G@@ zp5d*L-ct9>OeAJxRwyZ@Kq}bUKmbKeTA``((@~DLf=)&{+@lyMA-!fQuw>4ely4lzO`YM)mSvvFx5#<0h#837 z2f8`QRb}THkeUjwtVp`2 zxxR3+GK%a&JdU_Aj3^`w$9=Xge04yQewDdJjNS*jqZ9Y}j;L@s2ABbrBlCl;_u5}S z3%T3h)}b*4XgNu8u5CilfHuI+j8HX>DeFK^{;zLF51H!THc)ox)D+I)u?i07+?GvmFTdye5{_i&G48BI({8nbc zrc=HPYxLnatEmP^^5jv_bKk8lY7**MB*BcwCt%6z1AsSu7dq2f{~0Pb#nfef)Tzu0^;e5NBa5lee%2M{>z6>qMO!TmUx@hwl zlN{A;~ zGwXY_e|x@iFBW%AyWg296W@)ZT*%I3GfQq=K1EiYS`?Kk_9 zy_T&pcKY|}rSrntnd-YFL-ID@O4$PbV`z334U0DdqN}$tIyuCUQ>)@z{_Vrs{COa9^a$nMyZ@0<1h{)nAR0@#$(ttzQKq9MGe z0PU#@_g_r*d|>hLF>8Jrp@`BvpQ^+>be04?Vny3fC4z?S7mRUPlAn1~g!rN8XYbgo zLwe^B+^}N^zS=wlKjQp5KahUc{)f+g!Qtvi1f?vD0v!c?xs4H*w z6ycS?1u&8~jXpSvUHs9ly606WZ`;Ua5=(p`jwc;GmTG{_QjV8P%n2gpCbVD<-uA{Z`t3#RV3hcx=64}IBY2sB2R5ke2(mOA)zO!p0LA1DUD@d?5KR-R9O{i zYrBD^$1JhL6ut)FR-jWv?wjBQYlEhhC9^Mdfhs;ZiRI%-)?`p!(b5h$BLXC$oP`Ol zrn9h)$~=r@w04VijUHjNPW74;eAj@(^?C+WWrdkx0BpxMA6wD1trBRVC{&^}Sm=h} z?=FQ(s!H8qjear1F<)r@dBso=zAM)D#Vuiim#o@><&{n=Zp3@K2sw?);gh_NICA6^ z%`-w&69jTKv{)r0oWnoZuuC*ngt@D0p+{@0l}TDtU!||fZ{XBI+RlfZ!NrXLw_CP4 z;Ey2APJM=W98~4_G{On*IW0cl?qzE9))8va4YGl9Gq5K+Pi?0PmF^yu;8$}`n7KF6 zU^RzKsXKlS{h%G~@VEa`JRIvQ}e(@7$J8y(9VgcF9gtbyQG*)ha)64w92Rvwwns3|HpI2m-cr+erQ! z?v}1_e>|E|82TDLM!OD$5wB4H1cA#n0DWzjVh1GyeU0seuD`DSmCNhvvJeB^LPK^8 zhlh9H;ya|OXc98C>-0eKrnKugOPQ`L7BPDZ_%Syu_`o>cm5kCaevcos_hy z<2F3UBH~SNlCsQB4zRO_B{glx0t`mw%_+?_&epRL|*po`Xh-q(jP{VJ`hHc9D>cs5fNpmfF)Gt%#yp%hO2sX^aIKv3jH*J z_8Yt%?Tby^GC5$w&Fij^N3FRih+n0Z9S5<4Rh2ZmXBq^3y=B}QN7&>#1nH7C3hY>! z8`*Cg)WnF=Hrvpb%jq8mMCG!eUm+PJwJhBhlxs&L!SkrMXy1OLs2}ofeV!l!)J`-= zvxTY!yCvDYfMj^pMx-z=n>nRGraysu7is@5Nj3H=UR)X_?`l+G_kv82|C`%Dh14(I zGc1AXmjH;11n1B_aN~~3S!h`^wQ18Oi(jgj(})vUk7WV^M>FDa1NVChDe15e)iy5C zftvh!i~s{qH~iHYeUR_&UeUAZ9{l{Jy1Mi9Ur>aZtmjjoMc%)lbqv>+hIb5=-yeeN zPGdtzmnsflbT)`z8fH>)Po6N=`$msCgVM}p^^NDAYR26dbN&OJD`QvwKRrfko~7E? zi$@NDMjcwSwga4QpR;Rx!ato9&5@=wGd^;49}~Fb>_A`&*UUr;Y&AbP|rst2~Nk9kun#M$Bqo zu_lZSUHnN0d8yhs>0f_QFUWxkBpMVf$C=i&=n&w63GTly4K$7BEWb&AYdR#@+I_0W zpS%YRRbFWFP;}3km|f;MvC-G@rIRniu0Nb*K$P&2o#;_C`*M=s@nWF2SYz`r^Q?%-R8y@q%(Buy@@&e*-{ZFrzj)!_ zfqapsu|jDRk2dAgG@=cTjwsh|c)y=R`fBw3>=VqI7z8+XMEk1~_JbpVb{45id0^Qx z-9bA7hTRX;D=>x~iEAgV-}dhl$c6<+oF>UxM&S#|wcpEfU`SMNWe1!#dBmT*Z5^AH zC{4=^m^~z*2{Inaz&j(4ykVG#wQhRbk!aG$?W~iiM>J&kn2d7_-Vl6h=PvZ)FUa{5 z>ei3!mT*eJ>hwf4Dw=j|UD8iRT@4FvkqR*gdEFP5b zFoKp)D*71GEC4GZ51@)iSW4Gmqv&D|R1Zk#fczF0eDahj?J4+$ewgr?$M)Rhmabd% z7O&<{b8f_Z$l4E6#?{MXHFfWO^)JG2dX5gI?pHvdqVG25!4IAIDy+`4pQH#HqQnzi zJ|d_m<;PnoWVkyS)`R0Dr#E%(3-y{?hII$zx)CYIF}6DK$%{|0Yd3veCucof{{+}H zfjD}lHXXjcfW2bR`K6*|I$&Y#W3AynD{riAOdFE}T4=qO;hknFbr0#MpY8<9f0S?Y zrL}f>7t4fKvM4im9c-@AvI2d!F+q0-{kHB(+Jf+HM7{sl_mf(0dW5E0rXNA>rwZ-> z|8cKU>geWSfvsC*!JL@Q=6f9_?*1lZI^?O1>=ie9|9~Jp>ih;Q|1AHTq)b`EyGry{ zF57%zQ4~r4^<(OFyo79s8qed zZwAl_BsUc#G4+D?$K)^3jig-Yd7C+$MrW8yJx+E{mxw^& zPO^*^;=U$3Wr|k8S1|MO>hXCH{(-V#)3`P0`TTj}INZo;zR@8L<~-fVcOcN&LKD|3 zwYM|%8uSc^0E|!K033sVdzS+)QZ~5?>HMN$Ct|ju6d2+wN@59s-_LWMeyEqvgr(o< zUzVR%f<2SNz>IQ^g7QBBs-3I= diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/Makefile b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/Makefile deleted file mode 100644 index f2f8f5e367..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/Makefile +++ /dev/null @@ -1,27 +0,0 @@ -C=gcc -CFLAGS=-W -Wall -LDFLAGS= -EXEC=cnProc_gen_avx512 -SRC= $(wildcard *.c) -OBJ= $(SRC:.c=.o) - -all: $(EXEC) - -cnProc_gen_avx512: $(OBJ) - @$(CC) -o $@ $^ $(LDFLAGS) -O3 - -#main.o: cnProc_gen_avx512.h - -%.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 cnProc_gen_BG1_avx512.c cnProc_gen_BG2_avx512.c Makefile diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.c b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.c deleted file mode 100644 index 30cc5e85b5..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.c +++ /dev/null @@ -1,627 +0,0 @@ - - -#include -#include -#include "../../nrLDPCdecoder_defs.h" - -void nrLDPC_cnProc_BG1_generator_AVX512(int R) -{ - const char *ratestr[3]={"13","23","89"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R%s_AVX512.h",ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - - - fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); - - - fprintf(fd,"static inline void nrLDPC_cnProc_BG1_R%s_AVX512(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) {\n",ratestr[R]); - - const uint8_t* lut_numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1; - - if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R13; - else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R23; - else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - - uint32_t i,j; - uint32_t k; - // Offset to each bit within a group in terms of 64 Byte - uint32_t bitOffsetInGroup; - - - fprintf(fd," uint32_t M, i;\n"); - fprintf(fd," int8_t* cnProcBuf = p_procBuf->cnProcBuf;\n"); - fprintf(fd," int8_t* cnProcBufRes = p_procBuf->cnProcBufRes;\n"); - fprintf(fd," __m512i* p_cnProcBufResBit;\n"); - fprintf(fd," __m512i* p_cnProcBufRes;\n"); - fprintf(fd," __m512i* p_cnProcBuf;\n"); - - - fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR, ones;\n"); - - fprintf(fd," zeros = _mm512_setzero_si512();\n"); - fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); - fprintf(fd," ones = _mm512_set1_epi8((char)1);\n"); - - - - // ===================================================================== - // Process group with 3 BNs - fprintf(fd,"//Process group with 3 BNs\n"); - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[0]*Z + 63)>>6; - - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[0] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[0]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[0]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[0]); - - // Loop over every BN - - for (j=0; j<3; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[1]*Z + 63)>>6; - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[1] ); - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[1]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[1]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[1]); - - // Loop over every BN - for (j=0; j<4; j++) - { - // Loop over CNs -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - // { - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[2]*Z + 63)>>6; - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[2] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[2]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[2]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[2]); - - // Loop over every BN - - for (j=0; j<5; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[3]*Z + 63)>>6; - - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[3] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[3]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[3]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[3]); - - // Loop over every BN - - for (j=0; j<6; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[4]*Z + 63)>>6; - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[4] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[4]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[4]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[4]); - - // Loop over every BN - - for (j=0; j<7; j++) - { - // Loop over CNs -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - // { - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[5] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[5]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[5]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[5]); - - // Loop over every BN - - for (j=0; j<8; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - // { - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[6] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[6]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[6]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[6]); - - // Loop over every BN - - for (j=0; j<9; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[7]*Z + 63)>>6; - fprintf(fd, " M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[7] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[7]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[7]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[7]); - - - // Loop over every BN - - for (j=0; j<10; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - // { - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[8]*Z + 63)>>6; - fprintf(fd, " M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[8] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[8]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[8]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[8]); - - // Loop over every BN - - for (j=0; j<19; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i zZ(W`iL9N9;tF%&=)+M$zBGs1KR&8q)wk`C5IybMHAbcTVO@aC`r&Gw0sl z{hf2qz4zSvtr;$>TDBw@2zZhL-a;=`64dkdT$RdKnrx*v)*IuUR^9t%_2qw#WP4uk zqkn$?!w;*Us_LV9$n7k5l3Z(Qz172PCV1&V*Y*&34S?24o)r?|i|IK)`{H9VD`Ep)Ik;CEvQI zs`kQt?@x7T{MxF$h4)px)cX@(GbXen1N%#w4_sMAo!+^7Fz1bd*#iwwi?nP?2Uf9d z8p-{zef&TJVtdxds#@x=HQB#v#K5YxReJ+#FWDO`T=$I+uy=8XGX_r$`Z~YArxs#$ ze@`96w*H=a2*gl>1!ER$wBSkzC^T8H*@EX<@H~jsXl`Hi+P(mX+QmT|Y77lFW1^Nh zF85{ch-^1?9E6 zp^cwWLlT37ER0V(`a^~5Mh+hRjZgKIBVu3lkePwZ)&MfIkhwaD%p7EDLdeWT#v{%# z!kI6eg~F*6&LU)t!Q+LqL^##L`MhwJA!8c-f^e1#XN7Q170&6%Tpi@q739_R!_?{` zXsFf2oD3T}R!?|{)#Y0+tLqRr^T{^$2d{jRW~A{~y9*!mKP-LBogKz$miNc_M_ffX zB*8dE&Sz$vqVdx={+TVy0_-E|w2co+S%vFf{MVodC9JePShzK`_cW3W!^`|tj~WUW5^#MW5^yx&5(o07;+XehMa>;4OtE&W5{{P7;-)`hCBip zLoPzbkVhfYM_OZ$G30T`81i^z4EaE04EZ2r4EYdbBIIfW8AG0gj3FO^j3G}!#*mAV zG305;Bm%tPL%iV2QVX7-p%y%IGB5c2Ar`!Ey)5{fK8?fa6T5=uc#5Mc4yi>jS@@v0 zKcW87j;T*o?SX0Uo%63fX%8Rvq~+~cy;T%)`_t-2+ZxuQ)wP%G$y(L>nJqQ{^S|uE zb?2a0(sG9LKZN9ZFy>Q4Uysac%FsFEHp<+9%pS_zgiHy=@4q3_M44NWG4Z<*8Kboc z8KZSOGDho8WQ^8b$QZ3H$QZ5fB4Zl82N|PvFEU1JD>6pw2gn$$ZO9m{2aqvZ4k(v()?>&Rtv+Oo)=!WzT0cX^X!Rpw8r_bJ(b|EG(Rv0MqxB19jMh$MjMj6= z7_HwRV;X%P8KdBV)97A!D>&L#9NQbrvt{iqx_uXsBh)oXpF* zXozL)TQAG{-#(3HZO@X;62r3Y_^g+8S87@F`8oCzv#=?^KeL6Mz3M7iUjK)uwmF6C z&PK1KEA<$3<1QgDPfI=q(6uKaw5Ql(5Hv|+` zK|tXG2sE@B0t#y&pl~4s6fS~*!o?6!xC8r85YU?o0lj$; z&^rbKddEUQZ$1R{7C=C6Aq1K|4gz|W5YYP^1oRd`KyNVw^p1ysUKIrNmOw!71c)uX zr{wUSa$sstA!w*Qg*ln`l<`CCDZcfxr>y;Cdy2WY`y_?+r+!aOc9FJgtIYZT6R(A; z18>un$8--PxPKeh$J#$~S6wHo`2TSK2p6uSqoK5X(7=tRzh@IJ#PQ@{GX&!Ac8DYT zd+vZh7~Tni`@G+VKs4S3acY0hcOVdyTOeBcd+vrn_i-S_^?M+o{yhk&-wOft z`yimc6$0wthk*JIAfSFf1f19g0rek3K>Yy-s6Pk+^@kv!{xAg8e*^*bA45R>5eTS1 z3IQh`gMj+u5K!-ffcg^Tg3p{T&FX{}}@6e}RDdUm>9WpAc|j4+PZz1_AYVA)x+u2&nIcfck$y zK>Z&OP=5~s>iZy|{@)NaynE&H?&X{j5j529#hlE$*Fi(5ORq8~#{3TKF?OBl5qUF)aOzD8r6c{nc;o!NYg+H2vYzu;W$tzEIuU z|M%)|SNHCz?tTB-aBp7q+Mi_6qau#OFvsD{)KQe6q2iD^nd2}rL>&6oOB~+%$&RA- zp$?rRBO>Gqya?|ye5Nz&s%>v{RZv$C^cEIX8g zgzxMeSk4KBsNYE0S)oiR7z~mJ;k=wN!_cS~&ZX~w2YlQCdD+<`atm_8!-|IGk0=Ue zW##0AVZ0zaHzzw73T2u9;4|5u=6QiYFe?-Qs(K!v7kh>UvO~FHVmdGVP?1w0G&XYu z*VF4AcwZ@BE>Y<% zg8wHbPWDdmzLYpCQR~$w8XU%;S+ri580Sq)OiomIc;f}FE>UqlZ+dDZxwg4(n2 zS&7dT_-w%E4&V>s^9(+3;FJ9^#)sC+A^0G;;Deb1)7Ng~X)eBnIwvJ)J<@ZnBk-An z59V%=G|!u#Sm0rl5{td6#1gMMu@qy4x%NpD69**@^$trEd(#p}dD9bkJq0Ze!wik} z#%mn}>7YsTb@{R((xAroqf)o`QOiTPH)M6iOmD_aZ|*#AX-i9NWo=7jMPzaVV!5=m ztfir&KDsj27Hw>9iFK9Lw=M5%uaDNQT0OgBMp;|uvg4O8jxxCDgo@~j$z9RUoqh%? zOPjn4yv4O`ZSC<$eP^sT9*cN~H@DTdbT`Bz^Sj~=&2910riFP9*xcF*u(P?%;24C% z8)A*kZLvswds{3M&XGac(hG~1*!I@FHF`z+Z$ScMXbw5A2r5=aa8*ejne2hQ_qtPLSa#J-0JKn zKiRWvl1O`7vMX9Y5;0U7LynxT zSe&3}S2H?TJe55hsAr9*=~dVuEUs^=?VMUM<7iRNFb~G3L6k|gtc+G%tg9=sva`Lr zBXU7=yeTp>vgiw4h>Me;Ts*m9+L@7~B6DU=UAS zG_KA>`YAaY7!OCm&OFr8F}OClA;Ny8MzFEHGg92Vp#0e8`6nIQeAH29o!I37KhhJ; zYr0)Haa42C@pN{CCf}LM)$N@;j}!tWCQ9t2Xgx%ZqgPwkWv7ywHwuIEp$&fb++q`e z97yR#I2N=WKYuBR9d|vgNB$;5HobWpm_F@IOP?XESD4AL$(oKNR}ve`5XS?|9d#7u z+x7MmpFo~v13BZo4>Ic+7sYH|6sdOoTAgE=8COq6(?<_5Z5kmD)51L&mKm+g&1A*T z$9a~V(NIPCV3n*1!;;Fq8gISV=k4(#f#rcjU~6DkpeR@w>S} ze%PVbhHA@tG`K(F^;nw>2T)VpR*|$8-sCn25tNd&hbo)4aF%B^&@O?>3|eA7byd-R8~wfwdTuQ z?FN5Ce;p7C=MoeOnCse5(3Y|o%rSLA+|+^ftZbY>LBW)aiO_X))n>C_r7T;^4(Eiw zNyUIMUw>QMfoC||A6x2ZT>^bM~30c%k~0P zD7J-wDU{nn&=ls{LdX;h3&R3*ceBP8h6fr^XtITZ0D0VD z3nNV-ZVRIW9jIAt3kL+2ppdYI@qtrOxWX1D1X^Hitt}iJpjX$gwuLEyi$Gg%3uS?? zqHvQfl$*jPTc|LFEw(Vj6t>#J%)oT$JY);Ajc~7h&n0XkVy_q^` z$Mtr~a{dnLF3-bv>HrscIbnJyFegltIGpB|+|FNz452ig2EAU;(LirPp@6uMU>!kY zV6)|PSHfm1Xqaqv=1IuXomnqn{G*(NZQ$0=BfJY&psEgVXv0h0MN}UcMtEq$*2`?M z=uA`GbLq&&1}`w`T$F+v&aicdbeK|;EggE1DJ>t>>;;M+g9jteC(~0#bDqsmVJpW&kxWV3T;Smd3E4$ zQ|`Oi*8ecD(3JOFWXpR4UpD3STrLmBO?g-M7_v`^Zc|eljfTcj1_PL^EF=J_+^HOA zA*>$Gh?X~;=8#6w%x=)mD~+QmS72Umg-T9%6`+DG;O2xcr!0-na4OT#SY7iS@Cw!e zF;z571`Jt(SFo9??uQl)nE|sb!7F$~s%Z2Km~9DO!3$DF18Kk05MfGyao(gf>%&1RW#BD9A*h#!D6Z+4{6X1ILdsF^a{?QD(ZKyRE4orkizF~ z1TqX~2R0R~5$65E%w}fG_H^bQ#3cX!C`_^0@oqZvSrlz+o%z^joz_w{@hN^at11W9 zn08MCZaO%Dt*<#ZomqvVZTF%p{c0}RIIzZ8zaO}XC%m)Y4<4LrriRzeobXMb0Uhi-RsWutNB`dV2!cf3*1;gm~DJxV>)vUiq`rK z5Bb&H^qgPKxBl!`b6XB}Z>PVhb~Z-_)|gnG4Lr@)yFQ=JoQ$GjMunNnzHf=AGfx&~ zuQ0Qi`Q44_%r(TMMRdO~Wu(5hJ)L=nF#jk_Y5l%;)0xi-GZ%+A(<5p9`v(DWM&&(X z(mJgW<~a8AhfC6#hoNYgX9;r{GasZQzGL%56zz;Yd`)_dS;5rT+r);n_Q$W%)bj$)=ys;hjhoU*NOQpw00{5=EzWRH}%hHB;dRQO68N-$&(=&9S9ks!{MX^A51S2y6vPD zlbnK+eHI7Ap!X_}K;VBy6wsq5x;VfmP}bemS=Q2ASGKagzHIf}Ing<@rgz2~nrh?I zaf`Qmb=j=axuvtq`1Z4B=v*kPYmRrNA#~fj6wedvZ8CH7n{I8}d)}q>&=9c*M=C*}o#@i<83a<@+FT53M!AIyT{DS%3Oy9vNqfLQ~2E%t)XpAXr zGT*nGZ(Hqrhnm70Q4`4dd`{@ljp0qfQ^$m729FpM{&D!t@LQzws8M{;eA}jGx=r0l z6~UQfQ}tnHxsY+lR)pQwzm#gdoLb)&7)Q;IHO=oPn*)1#FgkB2qqQlcQ^@Gmp$U%BM~u-~%F|y<(tLtjMFa|ZE;7L|z{BsQr zor_YW8POFWv4KS};MCy>9oPA3&i0~RO?X;W*WG9wgN)YIcEx;~vnJ`*`i$9g%nkF* z)MYK5=t0W40S=@Hvt93cR}R5h%O zbuEu!wsokb;Uf;N=*p$Fs+{E zi=Ld)^HF2ug3ji6%tl}r%{>l_CmY|F+Q{-uRHPfB#=B})#Rdrw+Y`hHo-W&G5=p0` zE$#K^$%G6T8Ja(ujTv6F6^BQ!v8}e%2I0VEF-TC^=|ST>1Mb8p=V0K&Up(=SVTkeM z$Ue>X>?7Co$&iRk_7O|V_AxoKWlim^v9hi;WqgpAN9OVN_Li=)R4aV0Vb3wdS6aI= z;kF-W;Dj%n7FirI=QEKR#=F~M3rrJu);%3T zQs1-y=SI`#%!*838JUjLk_Gki<~ft^tdF$mu(L;#O*6(jPjkcS#pY#z6DrD$jU`K$ zRoSph_MXPv;n_(@2D{TWOmatim-Kt!9MNjFQJy4e5B;{aRi3NL^UQ`s zZxNUZESfZzFsE?I9S1e)cGAs@3u0j47|^`5#a3gVqcNB>%RQKxgGO?PFnejVqqd;} zTnNlK3FwoUWrfdfXxAyV)!o+J6@xDAwRi)<#9du&{dwIT8MYuNzADTylg`wA&+0SJ zb1L-h{+K)x4%~$7h=&cKDZExfuYFfl(jydIYpbTd?L zh?=XS&y6Tr7hGJB6FO-UC`LEa7hM)*d4Izn*$zx0x@O6cLUehOA%*y9jIIjdsfA9s zyo2==egqR{GG5MQTq2r8x5lJ<)<69MeKI6L> zUv1s-zRq|JB&CS?#%r65Cm5G?@pHyEF+QL9e`b6a<3)@YAe5jVO;#*!FZOrw#O|Q=D)*ugz*UD`xviO zcn-?cuNsAqWjw)nCEJzrqK<#s?qtpq1%-s=^$yGu6y+59aO>GI?Q`@yNz!R~hU0)FxwH>cm^0 zeWWbvnv^|Vld`5xjqT|eAHvm%%usdqL~NkWIm}O|C3&-_ENo0Mvr4P<*83C`|4B6-VUfuo};r{{sce!Neg~W zqz%ac`&?@W#iw@grc*I7K;8P58gzdGnn=5kl711dE}zq`;0-f*-K8!<_v7-`p67RU z;N|Ohqu1Ep5o_~0x^ZK?(VX{sjZ#zJ(vEvUoXn$kVUO(4pGkL<^RQ? zsd0Fb`R_8W`Swk#6u+EL0mky7l=$@XvEt9cjLZD8S+7*#a{m4~h0FQ-sS2-WL-mZy zyliHFS{WyQ+;~{y;PhZc{Jhk`-SPj1vfsz{Z+7_Zc+&YcCGlq$^SAl%cPM@YPrWJq z(uYsy=aj^L6Z7Bp;hPC}_%|^>n+66+&+kOW#r}5YM|}8m6n_u%kM-f7qWI-}X?nU3 zpI#fIB>prppRN}uk#NWVD#hQz{Of%9w=4cj%>RxL|L=;wkNG&sG>NL+_%CK${4e4Q z&e=Zv;}ze&w1+>{^5M5DzI_u9ud4a*uUCBgMxE!~=57Dam+>KNA?&<6oxuO>BRb!*~6mH|t#cTbX~d4?m{( zyO~cfk5M9jT>Em}CH_bF(x=CVe~Yr;!Te1={09{O2Il|RhyRM=f1CMl`0(ra_#pmE z{I@f%$Nx6Pm-xTOhyS?ZOZ-3M!+%@xCH~*@;TQ0JEdERUk78WU*IdQl&f`Nbgi+G{ zJxlQ={%ah*8xN}#U*i8FAHE#l#D9tZdmX;J9)G6nOZ-3W@LhjiQGAL2H+=Ycyx(ho z4q#l5&veBXe`Yv**Pm*|7k^Ij;nyp^tVcOc>iNA?@nt=(^|61m;>&uZci$u)T>rNz zzO2WGefWP={J(L$z2?L3{C`jJWj+4D;k)*?E55A9XMOl@DZco#*WtVV zA{=DJCe_!!sfB4XcKbF@YRns9w_J;!**Yj1b__9CD_TitX z_yv5!cexKguJ{v~zs86EeXbY(kLL1YEcJT-tKt`N9RH6GA1~LLB=%+fPh?!%pQre; zKP>U#pRM?^Kh!#WHy*B2e2KT49ljfH_bI;Y58E8RYk!C0%l`07AAXP@(8&0RKZT6z z@tLgnvL2^7eAk~!#h3W6^5Mr6U*i81iv!xF`p zc>AKmcjK*D@g@G-9KLJ+O2wD>@Act7uK425GY;SN=QYKb_XIR0Pt;a`4mdOXYhfv+*H$Nw?Km-zp= z5C3Jwm-v6jhd+#8G?Mw1_#el(_NPSgCH^ZMz8eo`D89s7%;7JKUeW3{@Z={J&G^qKiBy1?^XPL9RK(G@E=$F2w$fSi=>a6tc!7s>o{DZ__8j( z=)-SRd|4M=KKu=eFY98X4}Y8D%er{j;k)zxrs7K+zU%PaI1C@=nI!8})AsbifP12K7PGRL)SmRR{=K>fqEaJ)5UQ?@mx6KH=xGu|)(T z34T652U=?3Bz`aRmn-~a#=oTSqsd{UbF4_(xrObwDEw;XpRaH(dKWAF=REMe3UA@@ zyh-6#F#lT$-^u=LQTPs?uWbt7z<%~AoF5aIp8=&R8PAo>e^K#&%l^Ef@VnXnJqqvT zasHRW>1Q)2<#9XG?q&;n2PmBWp)^WIDEtYwU!m|t><|6iFD0@6I{Sa3!l(0io}qAw z@0h~ry=_XJ3O|(N|1yQYz~$={ekYgZJrnWs3HIkM#lO)u>)o&L4|yE=6#hDwpH=uC z9*5s6{5{6sQuqgq?^Sp`i4{`X&4d#XpnBe~}OW8XiBfvx4L52F6L9v!>;3icdcUM5#~l%Ps7^toZWYjJ!u7 z_N$q{Pw@|8Jd4Le_@^)~?@@^V^vf@l4pICwE$o#rF8r&wEbm>2{d(q~uK07|1J9? z=QYCrfce)b{#O{kLHSd}e%`70^!HShwkm!(%)jhxE5ncE05A!0gW#rq<*8Z2ul*zmM(jQ1*Yv z{O1*4{%%a(Gm-I;_j=8N8oJ_-{5{zrL_`w)Gq&i-`y|4T@V+P4@xniw$6wwv5q>4} zS19{3FXu2W{2Jz8toZa3izY1f)o{3$qOywl1i$#uqBYD?qvH`1jIweec7 zw63emEA4Ez1ykD)tLt7FZEkC92gl@V>*_jVt3V@VhB|B8@Z%9_82x;`sL+o=l-9Sm zw#M*B>!tYB{a7jf2pNCnk3WxQrC3w6v6Fs9;ghBa4A7X#xQe|>&dA^02~J!$O+nNC!c5ocq(m?J!RAd^zT^Fzhw@>3obEL=b^T0B-e>&Zq zLyD+MRrKiitufMDMIA#bw<7tixo4mzqyOuyis+O7v_)$F>HdqhNt$v+NW2rbo-Y8Bb(wUvL;=y*vjAV@q^)H`{KvdsK}&$;)zzn-J=K* zJ&_w6%xc*0HLUMqlovh0?_x~HZ-VvZew^^7|5DzJOs4TG&Me8I9|i1{DsqhHDXZzW?+(&P8PwX-j4 diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.save1 b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.save1 deleted file mode 100644 index 462f196d1d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.save1 +++ /dev/null @@ -1,603 +0,0 @@ - -#include -#include -#include "../../nrLDPCdecoder_defs.h" - -void nrLDPC_cnProc_BG1_generator_AVX512(int R) -{ - const char *ratestr[3]={"13","23","89"}; - - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} - - - // system("mkdir -p ../ldpc_gen_files"); - - char fname[50]; - sprintf(fname,"../ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R%s_AVX512.h",ratestr[R]); - FILE *fd=fopen(fname,"w"); - if (fd == NULL) {printf("Cannot create \n");abort();} - - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - - - fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); - - - fprintf(fd,"static inline void nrLDPC_cnProc_BG1_R%s_AVX512(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) {\n",ratestr[R]); - - const uint8_t* lut_numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1; - - if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R13; - else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R23; - else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - - uint32_t i,j; - uint32_t k; - // Offset to each bit within a group in terms of 64 Byte - uint32_t bitOffsetInGroup; - - - fprintf(fd," uint32_t M, i;\n"); - fprintf(fd," int8_t* cnProcBuf = p_procBuf->cnProcBuf;\n"); - fprintf(fd," int8_t* cnProcBufRes = p_procBuf->cnProcBufRes;\n"); - fprintf(fd," __m512i* p_cnProcBufResBit;\n"); - fprintf(fd," __m512i* p_cnProcBufRes;\n"); - fprintf(fd," __m512i* p_cnProcBuf;\n"); - - - fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR, ones;\n"); - - fprintf(fd," zeros = _mm512_setzero_si512();\n"); - fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); - fprintf(fd," ones = _mm512_set1_epi8((char)1);\n"); - - - - // ===================================================================== - // Process group with 3 BNs - fprintf(fd,"//Process group with 3 BNs\n"); - // LUT with offsets for bits that need to be processed - // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - // Offsets are in units of bitOffsetInGroup (1*384/32)12 - - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[0]*Z + 63)>>6; - - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[0] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[0]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[0]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[0]); - - // Loop over every BN - - for (j=0; j<3; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[1]*Z + 63)>>6; - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[1] ); - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[1]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[1]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[1]); - - // Loop over every BN - for (j=0; j<4; j++) - { - // Loop over CNs - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - // { - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[2]*Z + 63)>>6; - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[2] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[2]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[2]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[2]); - - // Loop over every BN - - for (j=0; j<5; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[3]*Z + 63)>>6; - - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[3] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[3]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[3]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[3]); - - // Loop over every BN - - for (j=0; j<6; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[4]*Z + 63)>>6; - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[4] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[4]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[4]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[4]); - - // Loop over every BN - - for (j=0; j<7; j++) - { - // Loop over CNs -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - // { - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[5] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[5]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[5]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[5]); - - // Loop over every BN - - for (j=0; j<8; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - // { - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[6] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[6]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[6]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[6]); - - // Loop over every BN - - for (j=0; j<9; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[7]*Z + 63)>>6; - fprintf(fd, " M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[7] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[7]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[7]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[7]); - - - // Loop over every BN - - for (j=0; j<10; j++) - { -fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - // { - fprintf(fd," for (i=0;i 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[8]*Z + 63)>>6; - fprintf(fd, " M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[8] ); - - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups[8]*NR_LDPC_ZMAX)>>6; - fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[8]); - fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[8]); - - // Loop over every BN - - for (j=0; j<19; j++) - { - fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); - fprintf(fd," for (i=0;i -#include -#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 7e811fdb4251ec92059bb0a67d2d2bb1b6a817be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26776 zcmcIs3w)H-mH)n(%w$3ci3SwvYph@sBrjfq0!AG3VcY7aj9{*JRlRrB4DYHs z@2Z*JRVU_7#;=65c z|1!+;0SB4o$n0~GxrAokhs zp~cmJyzi2+7@zlDvO$|s;WjbX6KG){?!y9or|j8!>A}V=!;S7>qpLsnH&*Q;`@5aC zpX@K)J$U=rj~+aG8xGL&`|i#7$Zl_F>yiW6O}xHJ^F!0lw)bpp zP|>;PZ69t23d~F^N4yU{R$wAb)?y$MCfA3#Qt{}UNSK8TDWe}If?;zMK< z`G1g6y%?0Vm}f&U)W02s@k9MP zAZmyDA0qlt|HBX~hx-2!qHn1GpCGUqegtCYQ2(P4*c0!BfWp@xpzw7FDEu=76utog zg~uSE@J$FPJPv_|c0oYlTM$tAHUt!&fPli25Kwpu0t!zV6$mK2 z3IT=JAfWI%1QdP%0fiqzK;cIaQ1~$f8XAUx!cQQe@CF1FehLAFpFu$3=MYf%7YHc) z0%8DDM4P1oz7Kzrxep2Qz7O%vFv6oJbyW9ZnSCGn8!K@i;wD^4H{sKcdM!BO6T zgMdIe7XpDYpXfvV3m_0E=RqJ)8Xypn3n36-=R*t*^*2JiIn=)h0^xQ61k^8tfcjzx zs4szl`b7{>UkU;BWe`yRECke-LqPpvi19=Hmq0-MQV6JD1_AZUA)vkj0_vZGfcg~> zP`?ra>Ys;z`c)9<#MKZ`k3c|uB?Q!)AfVn10reILsJB8uJqiK!HVCMb>Xm3WVbfO-M~>PZNw)6xiani{CneirI| z5KvzW0rl%4puP^GZ>awU2&k`zfclLPP~QLn^%MluZ-RjO%@9!E2m$p?5K!-jKqods zK>Zd7sNV_!^(_!k{{jTmw?aVuHVCNS4gvKqLO}fv2y|iq0_xi!pnfL=)bE0T`rQyv z{}Ke$?}32&mm#2jF9g)T0x`&oP9S&DA?TA`bjIc`I`r_zqBHpazvysd)}o`^qeUmX z$xmX@2_5aC!(BbvMaTOUttflZp$CPvI_dRDAKktBJ=FhQDOKP&sZZnj8m{+Y>U7NG zJY1i{wF;M=Xg6{fxc{R0sUp|$7X*TZp`uacZs6EZz~^%dNY5`BvVc|`=j0O$i;D_E zqeF$GM~yBXRXA!?NnxmXbRbA4Y)GSv3jzTc3;2Ub_zVPLIq3J37mxx4{(Q;j^HC2% zqk?0L(5MqCq)*oYe%$e+0)a7wCBaZpS<&b*Wxj%fU@!#ZC4s_Vz~}cDsQ=JsvOn2z zT-R6NcY#_XcVW*das&Rt5HXEIYbtVb{p0diaQ*3!IPZ3Sum+-T!q7MteRcyHNY{&T zNWVYehwev9=YZaTxmt|tYFxMC`UbFPaeaXNXIv-M1*02rJ@!$JAGs?jy!55$8T%Pr zvytz_^%U|$S~rCzQ=^cN;p)4 zb3$rTs?M2)mRu*8nxy(7dgznWi0iYcy%JYDuA6af!}T!m-MD^$>vy;UAHzR%znqK< z!G%7kIZ$KmMV{v3e$*K$MfW4UC{M&ir{I{o5z=gDPHL_LFQpbZ4XK4rV`>q6g}L@f zC!|hHo#LFDs&FQ!&Ty(yIAcbOMVO&+&Ujk~K{{fx`F4535z>gpkD}6U@1vHF(7hv8 z*UfP1ra4omIg2_vqU}u`;pO2;t%&97>Y9$$?v_YxMRVnp z>!&nT(k-{9E7lqwsWTPH2v>LXCMSoxBM?)cXg-6+!#jVQ7&Eb2F`0%}dun+c~oS z@@T?CA2rH^3MIQAkqCJ?7QVi-vvx|jGZvo`PPE6TTp#V}N=)f&>RY^cdEWLFfqKmI zk%%St%S5cX6&~8tg%+jmVQ(Mups;Q^4Zt9t&TvJ2A6-^|6+sGMDEN*zAsX3tsL*|qdM&`rc;P=j|P>yF;W*cEw z+IBEWM!S7oJ?wd!JT;jfdT1!){OsoS)OhISa|{BDeFKwuZe%s6bTnzh`NnY+Zg*@w z8b@XzX_uijYR6=+_lTzHI+}QaH8t|Y%^50e@?P$uNG%&W?n0^a;(6fm!Z1a zbl)?r>fFbjr>tp0yAH_Dgk{2|JZ*ZISg4;SIX2{@T)?-E(BDeQ5S-$ zuuK;URbhoL6uB$W#g)2H?6#q>N*798>T$O&9HRg_GPHP`FhWPIuRVHlPbN?(Hbts|&TNuw57GRAHwsOjU(lx-iYHg3dF# zFhliiP#4a0Z$>-ccj(#V1iq@~VSHc*4O08{A~X zwCtE`9Jk^{^uV{R^_bO;TdDIaHR}vrTC7WFH7o1;Zq&t1>s4`(i@Wbt#Q`q<`3Y4V zUVp6W=tTENx|+*Zy6>v;t{cj!o)R7JQTkVWM>3W&n5J}PDFH|y7?tUJx&OT#UuGL2O0s!!J`Sq!B32~^Rj73kLl zr=(q~$O8&2&;+OCW~m}?C@`Q2PRadLMQxE|6j-P}gHFjaQbj&eV3GO^IVC@(D(dDT zsR|)JkwVv$V`(aadvq#!PnZ?Jm3n}g9domp<55&SSuRYm+1;MaoR6Yzt>-4Mn&el# zYSuiJTcg^24Y=yz1h&5R*V)WxQPl0O`){wB_2pP@jq#I?vR(l^Yy3CO&1Q~AQCr`5 zxmQj9wO%#1Y|X7v?QRFI+AU%0UwA5;Ie?;W_qHE<)qL^Y+!|&55O8JvB(`yPIqnx@ z{O_f$-&5sPbMN_HHTO4p)jYV)t7gZSa%)tqejRvLUmtlXoB0nYD(26GS;(W>`EEAz z`@%dV%mQY9y&OxqIeuc&4O;;`tM$j`W;5y8s+h}#DXl-=p3R&u%o~I$t$%AXn@H{uhwl8h{2d8+|{AhM=4W5+lq%q~i{xK(vImSJzOaq&FVs)tHIcbbO)mc3))k3rF>J(g?HGS!wBW4Ol_l9{p9PNso56C7upuEP^#3NFkj5=Lqy*^wBK$}Yr% z$LIV8dDs2lF(q`oN}F(8ZcT5Zr=}y;T+`mtQqwnUW@P5{s-9@;s-|RBM=ajkS2MkO zR`raUSiGg9w>9c0Iu~l1W64AoLPtB*I5Xp;8#>^j;~RahQ{6&+NhDiwT!UjAG@e}B z9ZevMp#Y9`A&ZWpGm<4Vp49N1=H6IGvMLszM`rZ7OKY^Ht2Npafkm=|XDX&rI|jM& zq4Llg$5-GB4&c)r2!_7xJFPr)Ar*qj;2%Q|`A!?VNtFhI58Bc{%2(lr9>jm!)#nb- zCy(3jn>a4C8eHFt^by)YpT241RN*1BplU)23T;;vlaEtkrb*^PF1czfk^M_T4?w!X z3xfXH4}`Y+I>v>jQWs*+hj#cDjnnp@S9Tk#o3Z0k;CYk{||?Ut?6$krEq;|*IEWc6#&(c79twr=&CwiagDT72}j)EGY~m|*nl zW83=l1EB|>^WjSqHxlV;Yl|eE$fBhY96z>3x|2Ol1jkLWxP#NbNW8amL3~ksLHv9= zYf2#e>mti>3Yv&rAB7rG63M2XR~(W7orX+EcO8Nv*+f5rf*?=vvK_IR{4Ob2f!FMAv~ z3sxt-@ve*mqw!WzFg@pVbj920XcHP8P3?*Fu!$dO>FtTMbanK0YOm+?TKgT%$$6_2 z>FQ{uxx?Wi@>;UL8(Q0=iDgmD2fIR#G{U)e2WQR+3J63;XH(DWXphqy zXV1`3)JbP%LTH3p^)z2}P)*0t%E)y+v1C-oSc2vrEACR&_eDB(92FJWMyT;b)0*fA z0is8O7@0NO(MNUZPDMJpT2{-1$Jt2I&~1{27V@{b3Cc12aWR# zm=m9#12_!F+S#6#a7qsVca0uE+HEzfx;mpZiM2KSaFDMPl3iULi5fhTqL?L|aq=@t zKbxc@bnD4%>Q178^DnwIydbQegW;*Qbu(&bPMsF6SdM6KY)WdpYTE3|a8+lrHy)j< znuxWa*woXqYA&9sRWqlDtJ=d=c%02`nLXQ>StIzfe66R3W|F3Zy%1~dTcExuIlrz} z*;u$}af6Pj^yu@(CArjzbay3Wn7RI@J5xt&nq+r~7pR=cOwR?~ZW8SytOGhObl}oW z!7*U1dU{oftVuRCcSPleRRd;zR`n=<1heUoO&(^X5EvcAhR<(aBJXL#v&q;@mx zS!!va?_^{ESslUzqC=(^ET8KcR^R`Kfm{#Jti+>zSh2_hGpD1m^n*t&|LJ>Ot%{NE zrq()eAu!)0pig4D79Q)G9wD{W8}Cg-p-ZbK-Fsxdxv6D!Z+D)>#Jo?`^NqH1o?E}% z@6j^1qW)^n!ws2RK`(~s$6oG=qn+-YzhJ>x;R@Wfl}Em5X~(FJvmo8;afH`b=AJOR zFf@SeDIIyqv6tFepF5^(vu{C3(0_O=D5RP<(bl@ac^|)3&P{&W_vT4{+WF>5e!Z#9 zsqy24*-m&xfb|SMkqOfnujMjcGgP7@P2x9l882um#qdcuzVcT|@P5Xxu<#v>tNlIl z!heDBZsvcA+YU&{C{ z3%{1}eT?_%?l^Zaz7mpBSbgH>EsUoam;2&%#`XwjF%vkX

w$2+}B z)r?E1f1dHhjIV^GRH21)4dVlhOWfYd_#oqW;Z*5sj2~cJ`u`f^1?v3}Z}QCl6XSFg zO)0EC9p^*F>n%KpGL37cg^y!A#dtm2`84B$7EVXqWQYEzRIfhuhu@KCH9%zj)|GY3kSzQhjO$p8Op=^NYy>W`A$26_ z7(XAr$^-BAz}I-->pXBe_RrVu7d&v!XPVb$t1f#dVLT|Onh!Yx$CE4b{+GK`7^#l; zJ$avonH{#hImuYGYclrinv6ATo2>V0yf3qQf22CSOUvzjW=Ds*te#|9%&AG+vuiTr zvi4b7zR#^2NiW+Y@^X^3V?^&Qo7DewFLUd-y?p!7Oiw*(N7m)u=IEw3@Z2qLf|vcY z1+ONuT#{p-Yqe86YDaE56B9Y=x^Ee$dlS$^)`3a(+q(6hob{@%nCW*g>xJ|vcE0*G zAkp1}eRrGF*3})2JKeoFTy0Z(UZ+iJS~|LL=)+0AVWpLx9wqhsJUNN$1z*7UBnw~2 z_<4-ebDE$HVM>J4;kop)(ZEgrTy5E3$M#zc zzUiN}7XM!6-{`@=+v2~;{I7WMX}?WL#v8_Whm@Z5;J;?^S1|v_9(>xLQxf|F%>SbY zUpdm??`3{~9E?Q5^bhUNDT)2xGQZj2oAL8ii!WQh?FQepKVHaYNq`&E&c%8pJVV%`^zo-?aa@ z#g}+^(t|JSvGhmc;a47f`mu}Ie~E`;UgvE8oXWV^mv}hc;G6xwz~Wy;ibzX6_*J}q zh<%BNvlzGgld$*_4}AvT?9am%U*chx!8hk?$l^;pyl(JK`=faMkp4?N9M8Dj|0;_w z@i5ikoAzaX#J;-|Wv6K1vh&5)ZQ(x9u;r_!1A77<|+IgBD-n z;Ts0u^yhaizQn^`gKygZmBp8Mc-w;?uf#(!<1}8={uGNZ@i5!qoBdyE@n7Qk zy~N;~_WLaUF!R@Y@K3^zttd(VB_1X-ZqHYX#g}+kW$?}Z?6CL}58pKS=6Jtv@g*K! zHTb6ev3$@i{g-$+m2tcOXIgxThdBn{w7=ZqOFUfe!CzUAvoEJ$yyLf&dvG{AXS?380{|)Y~dRiZ?f?FIS#um{4vHiSojN!f6>B!$oTyh{=bYrX5oE2FE21I{*mW_oL`9_ zma?D!&Ensqyy-aqVc8e{Uo5_?FClK(8+GwcO8( zE&iL_zlg+)1c3Avr>}Q#O8E*^Qf8FB$j>r28 z%YHZW-?8{(+5Y<$e}MUiE&j!9U+y#M&o1UyvOV#?Jcnj5F8tS+zrf-zW&caO2!ELQ zS6TdV%#T_2<$Dl${!4#e;{I>6_;0cO9hQAr#~-u!Z!`Zni~k3{ulHK~1I+)q#ox&O z{f)&x#Qeh+|0>4id`$dPMj50D9A7ftNsLcoT==z&PqX-+=khrge;MktZ{tKCjOE8?o`IbpMz}w9E<;)?v8Vz z#h2f0#Vo$;t9mWI{GRJBi~miw|DeSW^SnG}@#nGszhm+1nZMWKzrp;UTKtvFf8XL? z&HTSv{1o$x$&pCn&pR1Ep7FFl8J}eF?_xjKS$uh@@^mWu^3F)@mC*+h+2<~*@_Xtt z7Y{Q|T$ArqC)Rf2ciNE29xYc%t|!{jRGp-sFju!WC7Yb;=0w7&?&;D6RofbE?ro36 z;%!~vsC-j%b5C>)Xr#U73=+O-ls&yyFgG@>(h`%?gu&5x^3XAopFD+W+bar=#Yz5+<4dX^&SOvUaK z)x8p?Pscfj<5-t+x%3;7eEu7_SZh2pMoaP^&5`ZD3xMTozwivLS8i2WMTef>Hb$DC zBF7@tYLWi5xhqhUum6qBT1E7!|FmS-{ikyi+a_sV!0lgPO{~qO^O$_?_i_8<$ruu~ zPg7~PzaALblzt+s(%pP0_Aozh1()_k-inHR`e)LQjF8MVipruVa+`rsy`(7XOIf7o zN%;|E2(#mN73YS16@ze5>Pk$%(f0v<4SzG`A0BWx;9smFU 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 6eae25907c859b9fbb2ca99473a4197fe99e9ce1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43464 zcmeHw3w%`7wfCNxWHJLJ83!@i}=-NHipAGC@$$D1@4# zHhQb2y*}{GwYH^Ik)mP{4c2NKt*>6SjaJ*B)}~4=wN}3WT6^zv_MDta@bhe14_>anu5PsUdfo{jc`KKk&-Pm)ioqa<=IC>B_-W-q0DM3M3@GJ<}7FlCp5iK)uTjFjiW5#auhB{;WX`371LC=kJ?6mE0nzz-UxD(j}Q?H`PZhT zOGokh@d`>0x`4Bw5l(2D40jfARL>(lLP~MDDlb{T^r-e}sA$i2dC}<9G(H@b6KPCx(S`z-rN%&Kf@Rx!g#-H=Z0>iDI1C#J4 zCgBT=LpgQ(Owm~1P+c3Z6qR-Lv072z6mJxzWpxd4QCVJ7*BBF(mo-$!L6llFO3-Ly zytE-6T~k_JE27cWYwBthCn^>%T~e?hIyHA{?hLBE*Z8M%G)D9faYZUPnvSjxl2o~` zI20{mKKW)Er{qs|NeL&2M|gdN4ZanM5at+s@*92R8GQ09eatfW=6n$`_-4Em8GN&z z#Rgx;HkGl;;G@CTQDX21SX?2BHhvT++LGFGepnQ>w8vAsH$qsn@tMFrLkY>lGa8_B zcx)WMnWG~}QND_l4s;#HG4>M5QLLqith7MX;G`Sw6Xyc)bqSp5>^Io)X z7wmDz9K7f$5*_Z!9NkR3U6j-Mdk^`bU)1_^(cTYEE%J00y>zGv;N7HH)beut;6+8P z9TNYp!Z*)tIWG*i9J~_9?yFFdi#k#p!18>$kNUT0u z6T-|7hQ`LiFFYGJeBr(7H7@e!``GL?AJHkK^~pJ39zI;Ozpz~tqH_BSpYuuD=?C4& zQn4;56W*&vZfPNXG&%?|o9q7kpN9{3KZ_qJE81GLWyQ1YMK=^S@5v@xt^1|k@l+6T z&z0P64>4K`yNfn%=oU?xPn`#T_w{7$GW-;6fuwcsZko>bP_v(^BKb$X3WDCAcC(;X zLhmo^>VadZ7Bme2<4{{9B0fArvOJP?E3r;d&6BL#h?QeC^n^vap@Xej?eG5U7pP_@ zesncQTGc!SfbK#|ckk}GmS`1;CK#fKCE7}&OhZI-plo*+i4GcNo#D-z3pJ5OuUr$Q5<8d;_Gdqon~vbhMD`As3gqCXgaD^HAnav8g?C)AevZ z$`);G_kfkTvy=K@&pj||jkO=fcTtQ(+S=)9_jK;+s{kw^Ty{ON^d-;d5??qqcV2J8vlV zaPvz{)U6W5ojKXA6;!$(cQt4?-!hocpM{1&M-Nl@#|uv2uS4oilm_63db3@*uH-M&66W zIYd(aIFviW)H5zwK9#G zI9%%>P#aN`jT?F}?ld)#WjaCFitK2=kmikU;Rz&3xLssa#^Gt#a*6C|zRb;+(aB1c zXnWeRr(qz@gCe{rj5^hjI~|Y28#6ohpaY*c-L=F<{auc-9B(0OHb@H^%R3zBo zbgeT}>&((RCu^NKNN}O^v`$3p6lk4=T4xaw3$@33)x7?g?Xkpi_1N6c;IXt8OYX6i z$vrj?XyrixV{U(J)3elf(q+_~m@vET`m5ddj@j*Ph?IkVxFON@-YtdfoqON)A{@vu z?NW3cBsk_-MllY@Tx*DIf8$yI0*I7j!cEqrA=*uBMRv@o(gr!E+4>}o`OHDvP&ztX zE(KEKQ@FgZPnW+Yxy#Q5TDj$*#7TN@7rCXLrNc1M_bmPJCv3@WmVN^wJxg!2XK7WS zF-z+*d737-=wq5*V3g;GhAKm3J2^+gGKf?(z&B|jnIsywoS8*)t3 zZ$hM^AvJSz6B?yUw5REEiiV#;v7==h6tX*7?gGi{Xt|rzJ6i4mDd}jr7i3*W%Y7hN z{@xF=y`$v;5Uh!}g8=X!AOJiF0>BSI0C)%lfFFVY@FNfaehh+wc7Ooz6A%D?3If2x zAOJi90>Gmn0PF+-;4u&sv&CH1b`<&0N4Wpz*8V7s2v1=y&wQQ z4FbSE5CEP50pM8>06IVb*bjn&o&y2k=O6$)4+6k1Kmd3F1b`Po0Qe;c0KWo3L7gA~ zyaWQk%OC*!8U%n>Kmd3Z1c28-0C*jw4MRkWr4$v1FWGTOEY~=E_|J$#Tr>1>>S<0M zhmQiS;xOclLtoK%bSB@~1^1z#5EGep9PXo|Gr7K1Aw(lNN%jzLveLJaEiJkL3c zbXhGu@iAANi*$tHJBG*+h8+;8F!X0`u1_9@w@VuohN`N4h2a#VMB0FpC#9j(B zyjn`j+`N`XUagkwE8{j&oCw8^mIxH!DDy$!Cg8&`{0lWkR@KO-K%Rm4x2LZeS z1n?LL;FTbNuLeOSsz3m*1_AsM5Wp`50lWqT@HHTS*Mb0E2LgCK2;koUDZzC-2;hw% zfX6`qr>PNe8XCZ9Jq!3c5Wv@i0Dd_L;8%dG>u9+W1n>CZde;WjqXafQK zCJ?}H1_AuvKmh*^2;jGX0Ddb7;NJxSd@Bgx-ven^lTK>yNrzajlg_*k|CLE60<@ZR zhW4Ix=;V({r@g;PXZHte#ck609YijZjw;MC>B#bE(n&1RWztz}6zQ0BY7CKM(m4wv zHR%NUoOE)e4VrXRRUMPg4ono*UefLZcKaRY{@+2Q&i%o}Nrz4pa&}5R9h1&Z%f|lh zlaaReK*OoD2l^3hPGAqTxftbQ4|JoXotr^7vXu8gNsaeFDS}qBns-JEzn*wR8G?Vqxc$J4I^U zLoDo^s_uCQre*iM{zu)G{oRiv-F>UY*t>hQ)dH~`)f{NFz}`6xlc>i)MJ!YaiC#5C zlPuA8674ob<1Nt}B)ZcOjk837vmx4Kh)%IYc_gYfMAIx$J&DdRM6)c>b`ni9L^i6M zMA?SOUbK!}0ntDIpm%8p$z57Zdkr|9V-lprHF9y8YXTWWGn|^;4yYxSF|*BrL2IZh zU|6a5zLuv+YfFf{Z%?ranj%43cAY89f=uu2mZ5OkwZ*k9?wydCU8ZXH``R7$?haeM z)D4yHbXalh_sZ?%&`P874;TjQeewuYx?eCvxt8s9B>D+N%C_GAbg_N9VZfgIwv&N+ zLuAi=JtSJ`D#|$rqLU5L601ffBpPjq>^<-uBuX(v_N@0Bi4MGH&3f1h23<OxVhaf38wRfmM6I0R>-yMz2CR%t&yhqWa@Ce zn;}Zv&BWPx8wL!`q)P(nD}i$jKOAjXbNJyxL*($o@ooj(=`1M0;dj1kM~uTM-!w$i zVMLzw*eTl~>eZq<`YdRfVa-ucgCTMhbgrw2y?>4&a(Mr7hREUlenaH&{tw@=ydV2* zgR!uq35GU;ZST*=Aay?tMeHrnb}Da-PDO$@VW%T;9o+z+?bH$<5((R>tV7$WtTRvR zM3CT3rUE3`;6kmlNb3}7ozt|=QY6^m8Cs`U>nztgE40ozNL=Stp`^EEAGM>)+?Gv< zuJ3kP(WP`8H{D>9q9@=MUFS=%DNl&5lOfm9H42sKV`9&grre@yIz)uTW-pBhZ#=oo zzAygH9#2O^ePW0l5%oGm$~cX3GUN4z1&4FrVu&2heYtI%JSUm)EW?7s_$))@Fn+9U zoV+oa@twc5yTxJrO+(}`-tH>mu)NO@Il}T=hR6|?b%w~^lwL;BwgMu1Q~C|p`*IhM z;zTGSofuOq8x^-rSVF44r4K-tK?P3V5aC z9`J+Q0=`;;Dd4p{A>fxlt^1`2(v(}kFMvp$eDt=nydfEaNxjwWG6VeLP21HS zGeD0aa?Aj)LZt5leZ#&jsY~V!Z*sY00k+aG?Fg{T4Ur?jq7dob?zOG@JY*}$^`C)v zgxY9BGKV~xwoTSig4T?D=Y%#( zdWb{&B$LR0zmG%}C2m84{r3(e7_|)vM%|4BqwYn5QTHRksO?BF>Omy9(1(y<)Q^y0 z)D9#V^;0Am^#~G-+KB|Cb|Jxq?nZ)9PawglJxDOB9SKG~jRd2fL4r{oNN}OgA;GBU zkzmvdNHFS`NHD4s2}Zq)1fyO-f(v~O2}Zqv1f%{F2}Zqz1fzb71f#l;VAQ)vOwwVk z_qg-zur~L&6Tp%dY zJ#7Fk2LXWgv;nvh1OVF82H+|X0BBFUUhZiFKzrH%TnhpK?P&wB2?PMz(*}U{v;m+! z?KTV%T@348W&;tT5^pbi;O2p#*i%7(i+}((9|X7p5a1So0JjhXxIz%%7J&e_ z7-YMe9Q=qi+F(1{o>PdWx1ti}l<#!Hrkqohj{DLf+igxcSAuCy(ei{j+~?g9cgycY!fy!U~?8}A2M z(b4h%2%K^|NDUr$0fGBI2m<&IKmdOT1n?h%0RAHoz<&$^_zn=je*yydPeA~G7zCAg z1O)I$K>*(g0{CMffbRkU{AVD5?*;*!p6&(w2@t@a1VJVCfB^m!2;l7?fbRtX{Am!t z_kjTZ3<%)#Y69RLAb{@&K_#980sQA6fIklc_%A>Je*pyW7eN63B?#cZ0s*`e1n`$Y zP>Gj80RJ@z;IDuH{wfIIuYmymItbvjAp-bsKmh+w5WwFAK_%V-0sL(cz<&z@`0qdf z?*ak*9T33Z1p)l`Ab`II0{HtNsKg&Y0RJNh;N2jA9{>UT0}#MJ1Oc30p#c0(Ab@`i z0{EXnP>CK8!2bdQ_$MHMe+mNlK@h$BZ_^5IL@Tj^bD2Dnk09(sB30u$vza zmSFNjEl=>nzdUFA;cb1NMLVF1dbs)FhY%(Dp}qnSrS`e8)?nCloLIkWh#by%B}Dqf z>f(&p(vy2@7?fm};D6t5H^$+Nql|(b&gg?kIpg4@&iGryw8I(q86t->ZZ|{@XS@L- zwT(R_b2D8V>tTTRsC#QG$r&pw8~eMvJLriL`M%-&bLY1no`24g*3agzT+;gL{1r=Y z7@Ivhj8_V8m`wESrQ_evf3s-sKYjFuX7@@!i(38^AC)C);!WcxWl~FCNV) zLNp(bzyHABUtnw;ym=n}&ch$SD(WbJE^Yn|y01z7=AcLTQd0eCf#85FPwJ3Bs@LmD z0ao~Qf()P(Ax4c%8yHLp3<{(T8Zc-AC%0t5U*gD6x4(&!hRN{Hb1_FNOc1&Q$&cyiV-#ruaPIQVWcOUsMiyQhjLw;u;@4FqM46+yzR99!tUZ z5bf| zK2w|}&TYP+xm1)lR~Q<7CQ*83^KfxY^VsHmfhToPn!kB0*G1z{CsBmIvmm_yf2;9# zE&gu8-#y?zhQAl^_a6RI{|o&?@iGd3a4yt=$AH_~gfxxC?T{HqGsPp_j~j!(nfSxl z^>NG=bDHN0^iuNzQP{jl6g4kFUtz419LF?|Y#uF+Yt9i9nkS0M%{W7##2`j!n8VA$sjUR!~S>9L8_fx%o#rZQt{xmUlnpjd(6I)$c6J8!3TLE9r&BeDZ z>dT|6W3|!B>Y7;Nl=9l*hPv`->DqNO@~2LzZCJXnctKP#3l>j}E+5+%oqx_M2y?5% zWnw{TZEamVT;32XjmN^`go;>Yb!{wMURPUD9j~sdEv<>xqQH18r*u-;q|3*Lqifax zi!U)WUK(v|DvQSIt7k!`*>!7)!Qz~<@slo}R63qQZf#w4MYylZ@bu_3UlpJC(pAaK#TtI%VUj6@Q|hR@j*5pkJuc@w` z6mDEyJL&RRLtW#fHKps8E?w?gJ}Xd-)p#_<;>3zJR>NG*c&k8XdD3J8E?*99PI*;n z!}$EEClPqc6mqUuV`F%ALtRsS__FGFRd`ys;EYCeCjT zLO)g3HH34}(c$X3d8bs*S$0bG#JN*>2z&P@wV%x9s1BJh-s=DH7mTf#SbdQ!qgQ*X zYmHtgEo+pGA#>abee0vYq2DwshdW+%Wug()l} zzrS98f4%kE%Yle`>S7na=G}PHTz#(f9LnN{;sYq zuW71?h37QJE3ih&t(rGLoM17l*Wd&j$M@5ikM{p}t=I9nwRm+omc#gLUM%dodN-T$ z-?w^KW9&Si+KYHB_Z=$>()}N{j;HGuYvGFZSwVH&ech^;xek4)jJ|O8gPT4nC(-Nc zdSX(zuGYFFapJ?_BfGNbjXT0CizMUBb+Q+fxSUD6ETL7U>%y&{i;}RTgHeQii4h)W zjukF5)I|pOzcG->Kn4Q+VF2XF1D43c_0rgiFpsg>e{#KRT_ef0Zjydd*GYz5^XjO# zKVV&Htkdo56mkLcLdC2PrIW1h|DU_Anqc&#HEKtAEk#4*?6+R#CQih7n_9^(Dw1Ch zAtvS3v0>aAb=RQy%GX4$m-MctPjb6Zk~K_l_r5Fml`gkt_i^2(FU4Hzny-+?^;DiH z5pAMf^oX#h*wgIU;py^(yb*7`cbm7ck zd+|wA&{y#C;85IBSoj|FK!<`yhv)L;!m}>qIc88=pv{vOB0k+e?}Xh6q@WIWeR=DE z^n3mTFRYPnMrct+_Gy^|FAFq_Q;$An!n85iaga6_g2qtKbBQrOBedDOAl>g>j*_Lk z0_@u$PZ?&&eTRpV0+q1|f6eWO4=*Q+8t+?nJju!Sz4+Vp?%~5RP*IQ(`nI<)Bl|{Q zVMh3dl){Xh>r;y|@;3X6GG=W|Tb2>2$(S`iBX532PC-VvAR`<41sMVEmyZDNf*mi} z`TF>u*#l`2u2+{|Qe8=X*G$tvN>G(5_2_mN9V_sWS2{-UFMV&lgi~}2jSjdZA4e;i zt>ol~bZGfszdX!$61RFI#J0Zq-tLomKXc)iUYXZBc)0b)$3R8(4KZ?k^T0_*9wjAA zwNLgawvJ1h3+OmX60t5N!YR!!QF&c&U0zV>>pY%Z;Pyn6KHfCryzb8)mCsRf1^;g+ z`aAZ{g6>!2x>L~(MPF0&4~l-Ks9*WZa7D){I@9o@#S0dk9L~WP-^Yii=g!KV5uTct zKO=AE)M??I<*|xzQE6QACr_I_UQ9xbc zN&SKF6RCgQ$O!X!5_Hjj4!jiR2YAdpxY;aL;m@sN-ay)o5P3a;ZA83jPY_8-!$TKf z`tN3D>aRfX)B`T5g*TA;FfjvZzmY1~N){4lNRtUNxN)g}+)s}zwWm}w`b~foBjrMw9nT4cJHp?fQ z<&(|w$!7UvvwU7|R*GzvPc`dZ0$)#$2YAm%QN9}}32W5Y)PO&53uQfiYP9!e^m0nx z14yRbh~yiopXH#+fe3z5|5gUJ2z-E_)GxkG$-rph|C7?80R0aLsb5k$JFq+r>BE!` z2L~hCQ-y~zIlE_iq;jSx_!1fRbEY`hK$$eo ztO|CKwVIMzeocDOG1Ey9fRTmiMV;MG)}DV`gU*&5tT znLN&H3*JDPe9mkSeupwsIkO}9@06M5nGDRX;B91j2G^}U*iMp@JlCRxXT*R8YTdu5 zeTZCk>Rr^xzzR~ho01|hnvnNUa|3~=NcDj-utUNhpqFO-0UE@CG`3XjL7R~vE)6Gh zZ`Rx_aJM3pPP*RbQG$OA^?~>2l+2^YU%VS2_vbI7T0>t;-wBzc~-Ke@JGtAkZs|HtA2+!a=CjFVc5u5%m!>gZvv1>AxlsRr5^HR<#9bfjk^%Qac9HDNQCH0xKhW+0+83y=+c2~42j8kP)Bkd$J? z0`Y%m$ z<{2vYn_F0Nn)ri;+cUTA*nQP#X$YqlX9x}2{K-wMxkGE#kS4|H{aSOl2t7+SAAOuP+qLGcTC-DY z21V#N>ZQltXU*_}h@d0A9of*`)YCsZ%#va);RvR-4h^cdqBQzYPvD91-~@fmS~CS% zZtFa)iPCN-%{^zc<_@iyt2OEWM&bU${P7UV2()it&1bacD$=|ilAE>WXc1~7oBJMM z%`UBZEwZ7{$i}mKSt1sywy`8eJ-Po)mV`|STkip%>v5_GrI6EW=Xp#5gp*A2>KMhT0Xu6-=U?ja}9kviv4=|`1SG;9{fLZ`M3d& z>q&FEt>-qnMxfu_0kV}xWmXD+AIj5G7qp#px z@eo{-@$&JjtRolQ#>MD$~K&4ZrvINx?f);5yodE=b#Y8tvvT_NkOnk*DF zOf5WzjyhJ(OnTu-t4A#y{;m?{pf~Bz0=e*{UgU{NEj+0oId3mK*Mg-Mp4U*)T6j{| zNG$(i;kg+cKI2n2G1FRj-bEss_NmKQWGy_O&?4$R7Fi3=*R_Z`l0|;0Akse}5v@t7 zPnl`0Nz=h$5p^$%0#ZSw(*l!4)YHtgma7X$L^Y&NXVDP;9W2r>CK0u}Rg0{Z>>c1> zUOzp;otwU1Yd)+st(EL^tXZ!$?;%a9|Jz#ATFHLGn%8N~7m-yf*+G6PjlMuiM>?W3UCP?H;_70Zxm=d=B zF!*d8?UyUr=U8*VQdN(8kX0+$cUcljkjRzn7c3c`AdxHC;RukRZ=@;Vawme%%TtJbtuvUjj%yVhJ!niND2Yfbc&T**Ginq6A+9av*tFfc{;LcCHpOw zbZQAlFtzngZNpm0KEj&fOx1#KBg?(=bFFEuWPi(=d0O*lTJuw_X{}@fyc%4nHGfZ< zw30m*d>&_OB|DWhOSEP>vT7x}lqJmx61kGCWXU#D!q%?MK6^1xFDF3BR*NcOD-BRpBy^O}y0Ov(3Rv)?}uHisaD(mb9e5C@JEOR}cW-3Yg` zh6`=eE)4~z*afF%qB<~3gzTkdd3+fI2U3AldLZ4hFbiryl}%leMcDz`K8A^^Lx@4T zLh0jBGi;&REjw{ULd!B!6IvERLsbV*LkB0edx(;vWRhmdZlD5(<_g_)Cytnd`$EHX z7yWpNw2dHEFl zf4JBr1x^=%jvXlh||0nyPE!ldEgzQRC&?O%<{7 zx{6ps6c))27G~5fdSf^{kQG=kNZCe-0eMK=qB!|HvgSY z>KowA@dWO~zis?`7t|*V>-LTr7Pyp*?x7$22if@bP8-IVyUh$s0?Z0*W5I;sOlF$O zD$`qe@=#LtEeqTMN<-ug;59Z=29 z@|D}HF=Xly&r#CWB~L5);5Q&6Uf$$-fY9xX$kdOa^$wglCA4}rmaN@ zww4~bEpFpyDI<(}{g-VWe@EcX$2pQ-gpd7Si=_Pj(~+dFkw^3$Nq<0q+yx&xVb~Ew z6GarM%c#0HaIbg5&<_HC3~UViFtCFhnY}siIwe(jjmzQ;g{U`h5B++_ad^nUQb8ug z#;>o+_W04{Su2JHrg_H<4LlxrKk!E~^CVk*gMU>dn?>ErMXBJHA*!?tH+tMDJ)C#p*p3#%`W(Enl__hg#n-ArU7-di|+iL7cBjQ^E3`4Qx1d;4y1LP7A*n^nn=r0*HBD<|2luL=>|&In-#Hi2x|#|a zCcKfLODU{a9cwI(q03ckWrcegvsw##31g+(D;n^=eIt!I8~|>6X{laoxQ=ijY z`1GzlYhBh*9gj&rX{7PPLibFr+!8tdtkhV#HrB_8%6ef?@tTu-Yr`rpT2ohkY0`F5 z=To0f711?V-HOWE(lyd+dV6XgULZReg}eK>?E*=9RJxyl`FU(((UPTwa)1(wwW?_pj4rCLYfRoka%4H;mXfnV zDuylVIufkmQ*MR6cLcfJ_wKS8BDywST2>S5$FWrbc0Wizw)4}ufp%U7f}Nkq@?I@S z2pd~_7DpX@vO)KovrFt2n~`q$6Mq>(V|(`r^?7Y<9p+nV_sr?$%**p1jX%c@&lS=7 z(u#cOf?za>08eDPBuS!PHjc__s%>hF0ZVfUJ~qKFR90GkX;ZyRa2mdopY$rV_lGs? z)0Oux@XG!^V$sEIcg%hJul0A6&GMsJ3Nn8~>KRdBiiB}AC zd7Sj{;fj2gH_}V)!}ZPzSH4fgUHK_ut1Ca%dT!S%fs-4`)goc7_-rkoTven3QA z`9V?Q${%1oziSra69a{QjyaJ(NVKK8m76Xiem8!G_55?9olMcJo*qi%hs2-@-0Tb% z#jgAz*7MYfcCv(ijyjP)RD>@sFfd^d85{!6*A7ErOJNY(~-}di%qD;JdZ! zp(Olg*iNR<&%upBo{rz*&x6MZ^;2)y)8*rk;_GMJa0h@7dIyH|2S*~D*Ze%i*Uz_U z{!+!)Pq%44eXfq|JkTxJ1n#srdR?vvsOICo6uqK-+th zuj5+Z?bm!A*ZN++=IglDclMoet?%n=zK&~sS6}mWTp0bMou}+;zK&~spI-BITo)^S9bY=G>m7U@*KH2Ij_Vx`zK-io z2Vci^kAtt{THkqh#$ui;wRQb`ucr7LesH?`MuY%^d^gk-kK{ZVLkoR0R9lHXNuK&*sBEBGGA-i^!MP0@mWjf zI+I?h7-FkgsRzIhLEpLl{81A9E1BPW-Tvn!`cEg}zXLv%>#XO;N%Vb~aKcut?Zgo9 z2YWNcb&l(W(Zr|og5qP^=OY(<>d&ru5zfaXThK#hA-siI@96(Oa(#MVzsys1^c_?E z+FU94WXIW`Ym~me@qDf-mtKx?8<&2>{|NlSc#^TH3Tul-I4PuZhKD6}dB~&A?ucn-X?OYpbKB4GpF1qcMC*XuYUxz-C>vqG`>V z^?(?;C^X{w~PKmuyNn1)r?d^@q-n%IM$>dI&D=tY*5-cXvF=4yUDY30NHpCM8x3{b>Tw;&t zeaVDfJ@<`AtJRM3&;nJSQAs5eZ$=3$CQHQ<6xN zHO;!WpzfCRg4+s7>{|*bBH`9f;vERb4T6Ll60B)$g*!In6J`%%w=Wu9w0!=u!f4?c z3o-46r!dmqyQAwCL=@ z710&*3zimA33zO$JX+q^#B-wjd~hVPc~8hJy6kD7p*F-t*F5rLE3?)55h%h z>)5P2bwICO*{QvEWuwuu#zs{<)lO8_)yEulY;>zuCGQM7tGZ&@0yR=cup=yT8`rPF zjRnwngQQhDg?@-N)QenvggTZxzhKGacHC4frR*Th9GcUf+ncKmbcbO>1;4{L6$N}T|!DuC5F ziI8VPiO}gw%Ap49rE99oQFI*);wP6&krvVEA{Qs-H8|NqHCEQN8sO4e+$q%A>e|XW zoh~gaYlyAYIr{dVPSfqc{|yK21JasZuV-g@BghHtqch>}tjLu7C0+A40U10sYT;LS zBgkQYLgB-lvw!sZPjm2D`UHI38(|S$hti?1|7DJ@2@;Qm$bN=zQ0V$^^+s5MUdyIq zq$GHaULJTRHsLq}IeN-f<9B%@$kF#Xn5Z|!@E|L))OL;6*Ky~7hb#y}Ry%ci#Mu*Pp`w9_-4=cR0{)#OwM}kx} zUf+KxQFz@>UB0vZn-so48C;hV;nX^X*WV=}Jg%yG_1}%)QJ+x#=+O5ws#Jk`|3pfA zkAEu!CSKq7XjAwd8mOqgzSs0S4t&HPVa{UiZJgPHI;8>m9ckBG5ID?Z}vTeP3qK1yXCFsf@I<{GATGzJF7!@YBh- zap>{atace%eSaxO;X76PwSVe*Yd`n{ux9!CKGdNooA0;%A3E^XzC($`S4m?1>hd)`2#Hy~ zzK*Xdkr3y2tL9ktK1Ygd>GtdE<(d+y(jT5~M3K!rsc!vh{A7zG6S{m&=}lanHdVh@ zB6Dpf6KSXJQAzOQOC|7C#|M<0_!E-gzg#Qvcj~}Y^>E_zli+V(F9EfBppxL{D!jA* z23{)x^j^Gq=<-eKs3NN$qKOelHw7n-eL~Mv(*H$cq03%~b_{ 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; ix!uLxnPYZx zBnO^>pb+lm&If-`MBjW74xjSofk+fYee&H0K~V8TLBT+*>gh@*y>lE~E!$o7)lXMf zSNFV8SbEA30+<9$!;!=&z((eXpONeg+zUOhy0G)}!uD^Sdxcws?iKzf@4dpmhMe{Z z{PpzJ!v4a0SI@tBYiI8lLUeh%urIb>-#4!OxJ&A9zWf@;G_jD8*)*l}qEtqMk!d5w z5Hd%@h@`XvTcyrup(&Masd^z887Uq5NfWu8Xp0ACUVQikI=8HVXeY+F{;Kq#h$A#0 zwNyczAbaC_4M0Z8xFiCIF7a@#C!5Ok<+?<7Tj%|Vo`!688X-(cv6y?>5>NJ~a%Zzo zWEXqLbmr7Mv%R7RqmM!=6XC`wfYvO=?8g1I39*Rk%tNr)lh5LEk3~!3C~JXpM7$H0 zd43KV10KXti2rgOILcnYato;2RnKxF%XT_WNxj>dXTV4sZ`1G>4S(PuTAyz9UN#I2 zuP^Cj2uOKy<&f~E7zbH&j2YmK}N zV~2iFbiC!jcZ&9&|nq(s|}ENKIciXVi>ebn}(aio@p)yr6Nt9AoP}ikEULPICDDuiB;K>Q6;6#%x0Vz0n8yxRT0;S-d z1eD@*G~tv=xC0s@Z1ehl)oXcpN`79$e^;`t;a@4aqT&B2+1K#T zlpJdKO(kDZGu^v*eLm4}dSZ$AjHnLrTg1Jm$9YtG(Q|w}zNv6pGrlfZjm>&!ui+d9 z(Oh9JaBH>|x*H)_B|EgiT5B}Gl4!|YTQ3)@-UT0ZlDF5^0{7A}wH?@A**)%3t9mZG z;5uMAe!cGE!)bYb=vw#+;?r$Auc<(8rFbE*>)c&x6L&G0=tDK(dUA*v#qhmmoNVLN zhXQ@^XW}68*VLhKAJcsyU+!`I`bv5PN5b`&^W8|@H0tZqhniyEt^YXs>M?0iUjJJX zVx-#+p)P6vH`V@cCz? zpCI<9{3&-m|0-g7OoZS-f&88jMx@)85KCJBW3@i_39V0eU0;7)#pFCul(fQ^SzC}r zp107N_$GhVP?n5#G_W7fJIepaBI366hExXZ$Mzo~Ll~#aIQvg9pl04b!|x-LRKMMX z`qB4}{kg75Yg6o9mH(DXxEnG0_UZogO-$PAgzEo0oj;vxlK&4X|4&gLC%u0E1NNXZ A*#H0l diff --git a/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/sauvegarde.tar.gz b/openair1/PHY/CODING/nrLDPC_decoder2/save_best/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/sauvegarde.tar.gz deleted file mode 100644 index 7676b9e13558a534980113ffc38e067ba4cdebdf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4010 zcmb8oRag^%0zhFTl^op;CMYsmI!33Xr5Q+#?i4mk#^?|MLApa42?G#NK#+!w5=M9H zki7TlzTda={VxZYc%Og@_s52S=pg?tICqe#=gR#bc(db|%o{*oaN~~x&qc5HqcYc2 zQN6b+~T6t1|vlTPn2A z!dA6%wzVM@jPWM4`0;lA&&Mb)m+jRLQ)*g8UIU>(*3Eyyh3xqSCvzNlS?8n9(M-4t zJXlsz&in39W&ep2HoqQ~y;-W$_k>NkTVQHh0d?E}r@$=KFSk$*9MedU%eab2p6F>c zv`CZ{t{O?)Y{zv~ZmQGq&3Wv2R^gopsq#yvhsnsz?A)euT;Ey@Mkjrs*<>4X1-E9r zs|dT|wCr?30~BwaY;cTXx4g=58R}CRoAkH#*GC}3c+SZ8W;HMLRtgnNFD<V6F$Q=)553`lWXhQgddHi_iuo#Qwx#nx zdQN?SxC6Ej`!%A7Mxs_N!!k~Ys8nv!l5XM0?;n1<+&NHJ*8%#Fi!(hni}&c)eRyv8HAN^~Q4ufRIU$iG$}&2w#1^eF zC83|_`&qm8y|OVYTVh4|=2~YL*C7rYGD$9|pc#bwTjgFF?3G;!ltX_g- z=X*ytTnFal^K@w@i0|yi<^2i6@_vzqygtiRepZ#3A!mHfIFb~WekA?tGrv$pkkVtq zbWR6JHx^)0?8$GAvB##r%%Cg2GS-xzb9NTOmjftDLPH>4KS~-fdjg(?11h_IYQ%n? zaz2E!YV4M|;JDJMpDWpp$JI_%Go49c>p`$d{lK*Z<pEk{>4h_0QvOEl^z|{0L9d0x*)D+1+#DtT!oRViJFQHQ?HAF4;$IK-(u-Y@@@zs9;!P-5WSC~XiU!#zNy5!CRO%bYOG`14 z3-VnyBu|k!~2{(YqD{%=GbgF00<$ik6Dgp@G47`Y3d%J++c+A~<1$ZE|$*tUB{@W!vIco@j# zYIE_(x2WpoiTD~qB z^S@y}AdMqHY*ZD7^Oz;Cm+52VKSvXK3kyze3EuoXet3MUBvnjQ02{wORc^3k;05LvX9CvRfDt)KaKwU3Hwv)|A z=eXnis0ZIBH!zyXtt0fsS1jJA;zVoT#s+6%&zv?Y}9bGXtEhdAHoqzOlRysbIMH(S~uAA)ReHPNZiXC1i6WhSmsk}(I z3!bD=D?o@v4k`2e;wE55R?Yb49^O})njd4R$k`up^|3xKG8^0|D&*cFcBsBS5D5`G z!T;l91YXY~xR&{@_Jn-&pb7pZ%v)c~M8>;$(7`>qgr5mR`m?a4o7_E*9D1Ve`1dAL zw$L0Gqb*>AxM484Z#V<_0o_xBxJP{AW}@_Tt0mfegs42pFfA=>5O*q(xt2@XE$caz zKS+fo9w0(n`dUFV_pWs}m>2(m)UnGDJU`_bOKiYZ!wZMJx?a*r`+i zm^@Did;c=^l9LWcf9n`{*@#|(R%&bidrl6m6x>cUX1@6D-<;Y#s6g1Anr>;t&XPpH z!r-hHWy&@7WVr6-Qz9MOyhNM~q(OcFeX{sTd|=DYK2bl} zpIiQk!q=R-0lAwqyUK{C935@cR-c^(MU7_@B!j+LlDP9a)FFzfyIFVD(nqP4H1)`3 z{YKO>&;e?JjN5~Pom3xGl`8q4S!X(jm^djBJ{on-i_X~zA?p{452&%UEvYp&C^4Sm z_n5V{p(^`3y-%(5yF$0FlN?*@Z~^8^ zx`$?;iS=XnkduMro8kVnoezQ4&=I1{_=O@d-qS-z-v~eCu@$>|zX*e2fdGCe$Ite^ z$3t+3cVUPAqQjwahF>9DAM!f-YOr+QHx*tj_>pSed6~7p#Vn~eW9UhWv$Ub3v_;?{ zAl6Hp+F<=2o(~uF>pgk9NfO|2`b&<7nJP#&AaQ$S=DSkyTQk15ZTC?|4~q=uNf~NL z7&hG`4akWY{|p%wzj?~2!T!0ZH<}zDPhL({Es{b3?q+o~&eycvqss0C z=ts^0P~HZlb0Qsqx)91*$8T}(O;>&F19%~(i)GYi3xoXDoRST__ZArG-<z zf9m~Op_U|UGeKcPgrf#x@%P0ur!f}?=6#FCEl5-4b;y2aDWj6Ke*^6i9ifyM3R^u>SbnWI=E= zM>Oy;|3QwzX(QLGbfRPQ7ZB+9LY+oq)kMRH;4U)Bkqd+(6M18zv9bPrxMd+NBX&LQ zS@CDa4Nkdz%isa{g2B?q-V~Ey-8QNj7+oW>rM_|^C%*^|p9WV7mvbB+A;GnyQXGR6m_ow@Y z;z?~-I7A>6)Nl=&b`Z~}bYvgD?=`dSH4u_`p$HNlnv}n#p;-342IdH^-tB`9K-c;q zMGZ5!h%&losrOnjxQGkN-aDm4yyA6gH`N0|f|L9PGNd_1THhc40$Q z>ADF|$*yLSLTk&o>UBjix`#3^Mq-ZZ8~|kM;&a;O{>|Lw(l@Re1@=JP5Utx|)Fp-N z32^*d-9ap6e0Fi5_mzY8+hbfRhM=W3+IM^=<|Ufla%Tc159~tp*od^6mf2eiGkm-G zu4}5>Jo*ScJKiGU{?6-^0NR-+2kRDE)`k7gtn|#y!-6OZAq4~HrU_Wckh1`&0&J=~ zLtN2lG(!F%m-K9h>v;X$H(ZN2Wl7@T{r4OaLO{)At6ZLizr=G6`YF6e@B-HlF_*jr z0B}W55FqEtT^A!hTbImL=4bmu->`if?Jv=l2e3YB4k<++6k1T;gYMPbE9^@t-H1Zm zgs=i80kIi@&iw;n8l+otD5O090qGmFTG;|K6a)hAom}@=Ar+79$HDdYT9PB$Fxim{ zl+J&}{?Su)?R6=H*4RA~*QRyzh-l)uX`xXUZ$>Em1Ec_J&k^QHdsBWX-mygU7$I-m4gbO)_QtRc1)f+XC=O(No=J?iaLiYV`I~N zD_=*d*GxoMaQpsgGqkdXO6`*+3C}!ZU4Oa9T3TK5bJhXI7T>3P9rj~%*+wx;VR{`e zVz|IQLlccX%I)pyh*W~R|VMDw3lf@^UOk`11`tL9oh@q}0-bTxVE?QveD-~u1*1X(#j8zJ`1 zZ|xDXHcvJMfwj!BS=-8Nofal@D}9 zeLuTJ!%l0s1PbVHtMO+8*yhv!v?no#v#og`8%Lzwa;UOI4Ts+d@3nlP^!}DvO$1XH z$hgYu5nI>@a7fWn&LXjZLl`^Wk2|CX>k;L(PfW_oZ&Z9>MxK|7a8p1UiZYlnykf-6bBi*0uRvMZ~@vmWAv~@OeOQ?^tUh4>R z?R21R@}nDL!FxoZfp;Jz7u;fuXbSv&A%{F=GZgmqmh0MEqE4I1 zUy3e$c4bK-1~v -#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; -} - - - -